Reflective video display apparatus for interactive training and demonstration and methods of using same

ABSTRACT

An interactive exercise method includes streaming exercise content to an interactive video system for display via a mirror, the exercise content including a depiction of an instructor performing a repetitive movement. A video stream of a user performing the repetitive movement is received, via a camera of the interactive video system, and the user is detected in the video stream. The user or a body portion thereof is tracked in the video stream as the user performs the repetitive movement. The method also includes generating a measure of a difference between a form of the user performing the repetitive movement and a predetermined form for the repetitive movement. A corrective movement is displayed to the user, via the display and during the display of the instructor performing the repetitive movement, based on the measure, to conform the form of the user to the predetermined form for the repetitive movement.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/243,705, filed Apr. 29, 2021 and titled “Reflective Video DisplayApparatus for Interactive Training and Demonstration and Methods ofUsing Same,” which claims priority to and the benefit of U.S.Provisional Patent Application No. 63/017,781, filed Apr. 30, 2020 andtitled “Reflective Video Display Apparatus for Interactive Training andDemonstration and Methods of Using Same,” and which also claims priorityto and the benefit of U.S. Provisional Patent Application No.63/173,587, filed Apr. 12, 2021 and titled “Reflective Video DisplayApparatus for Interactive Training and Demonstration and Methods ofUsing Same,” the entire contents of each of which are incorporated byreference herein in their entireties.

BACKGROUND

Exercise is an important part of maintaining an individual's health andwellbeing. For many people, exercising is an activity that typicallyinvolves going to a gymnasium where they partake in a workout guided byan instructor (e.g., a fitness instructor, a personal trainer). However,dedicating a regular period of time to exercise at a gym can be achallenging endeavor due to other commitments in one's daily life (e.g.,a person's job, family obligations). Oftentimes, a gym may be located atan inconvenient location and/or an instructor's availability is limitedto certain periods of time during the day, thus limiting a person'sability to attend a workout at the gym. This inconvenience may also bedetrimental to the instructor whose clientele may be restricted topeople who are able to attend their workout at the gym at the prescribedperiod of time.

SUMMARY

An interactive exercise method includes streaming exercise content to aninteractive video system for display via a mirror, the exercise contentincluding a depiction of an instructor performing a repetitive movement.A video stream of a user performing the repetitive movement is received,via a camera of the interactive video system, and the user is detectedin the video stream. The user or a body portion thereof is tracked inthe video stream as the user performs the repetitive movement. Themethod also includes generating a measure of a difference between a formof the user performing the repetitive movement and a predetermined formfor the repetitive movement. A corrective movement is displayed to theuser, via the display and during the display of the instructorperforming the repetitive movement, based on the measure, to conform theform of the user to the predetermined form for the repetitive movement.

BRIEF DESCRIPTION OF THE DRAWINGS

The skilled artisan will understand that the drawings primarily are forillustrative purposes and are not intended to limit the scope of theinventive subject matter described herein. The drawings are notnecessarily to scale; in some instances, various aspects of theinventive subject matter disclosed herein may be shown exaggerated orenlarged in the drawings to facilitate an understanding of differentfeatures. In the drawings, like reference characters generally refer tolike features (e.g., functionally similar and/or structurally similarelements).

FIG. 1 shows a block diagram of an exemplary smart mirror, in accordancewith some embodiments.

FIG. 2A shows an exemplary smart mirror with a stand disposed on thebottom, in accordance with some embodiments.

FIG. 2B shows another view of a smart mirror with a stand disposed onthe bottom, in accordance with some embodiments.

FIG. 2C shows an exemplary smart mirror mounted to a wall, in accordancewith some embodiments.

FIG. 3A shows a front, perspective view of an exemplary smart mirror, inaccordance with some embodiments.

FIG. 3B shows an exploded view of the smart mirror of FIG. 3A.

FIG. 3C shows an exploded view of an upper electronics assembly in thesmart mirror of FIG. 3A.

FIG. 3D shows an exploded view of a lower electronics assembly in thesmart mirror of FIG. 3A.

FIG. 4A shows a front, perspective view of an exemplary an inner frame,in accordance with some embodiments.

FIG. 4B shows a left-side view of the inner frame of FIG. 4A.

FIG. 4C shows a front-side view of the inner frame of FIG. 4A.

FIG. 4D shows a front-side, flat representation of the inner frame ofFIG. 4A.

FIG. 4E shows a front-side, flat representation of the inner frame ofFIG. 4A with various labeled holes for assembly.

FIG. 5A shows a front, perspective view of an exemplary an outer shell,in accordance with some embodiments.

FIG. 5B shows a front-side view of the outer shell of FIG. 5A.

FIG. 5C shows a side-side view of the outer shell of FIG. 5A.

FIG. 5D shows a top-side view of the outer shell of FIG. 5A.

FIG. 5E shows a bottom-side view of the outer shell of FIG. 5A.

FIG. 5F a front-side, flat representation of the outer shell of FIG. 5Awith various labeled holes for assembly.

FIG. 6A shows a front, perspective view of an exemplary wall mountbracket on the smart mirror, in accordance with some embodiments.

FIG. 6B shows a front-side, flat representation of the wall mountbracket of FIG. 6A.

FIG. 6C shows a front-side view of the wall mount bracket of FIG. 6A.

FIG. 6D shows a side-side view of the wall mount bracket of FIG. 6A.

FIG. 7A shows a front, perspective view of an exemplary wall mountbracket on the wall side, in accordance with some embodiments.

FIG. 7B shows a front-side, flat representation of the wall mountbracket of FIG. 7A.

FIG. 7C shows a front-side view of the wall mount bracket of FIG. 7A.

FIG. 7D shows a side-side view of the wall mount bracket of FIG. 7A.

FIG. 8A shows a front, perspective view of an exemplary of a safetybracket on the smart mirror side, in accordance with some embodiments.

FIG. 8B shows a front-side, flat representation of the safety bracket ofFIG. 8A.

FIG. 8C shows a front-side view of the safety bracket of FIG. 8A.

FIG. 8D shows a side-side view of the safety bracket of FIG. 8A.

FIG. 9A shows a front, perspective view of an exemplary of a safetybracket on the wall side, in accordance with some embodiments.

FIG. 9B shows a front-side, flat representation of the safety bracket ofFIG. 9A.

FIG. 9C shows a front-side view of the safety bracket of FIG. 9A.

FIG. 9D shows a side-side view of the safety bracket of FIG. 9A.

FIG. 10A shows a front-side view of an exemplary mirror glass, inaccordance with some embodiments.

FIG. 10B shows a front-side view of an exemplary safety film.

FIG. 10C shows a front-side view of the safety film of FIG. 10B alignedto the mirror glass of FIG. 10A.

FIG. 10D shows a front, perspective view of the safety film of FIG. 10B.

FIG. 11A shows a front, perspective view of an exemplary stand, inaccordance with some embodiments.

FIG. 11B shows another front, perspective view of the stand of FIG. 11A.

FIG. 11C shows a front-side view of the stand of FIG. 11A.

FIG. 11D shows a side-side view of the stand of FIG. 11A.

FIG. 11E shows a perspective view of the top bar of the stand of FIG.11A.

FIG. 11F shows a top-side view of the top bar of FIG. 11E.

FIG. 12A shows a front, perspective view of an exemplary upper displaypanel bracket, in accordance with some embodiments.

FIG. 12B shows a front-side, flat representation of the upper displaypanel bracket of FIG. 12A.

FIG. 12C shows a front-side view of the upper display panel bracket ofFIG. 12A.

FIG. 12D shows a top-side view of the upper display panel bracket ofFIG. 12A.

FIG. 12E shows a side-side view of the upper display panel bracket ofFIG. 12A.

FIG. 12F shows a front-side, flat representation of the upper displaypanel bracket of FIG. 12A with various labeled holes for assembly.

FIG. 13A shows a front-side view of an exemplary antenna mountingbracket, in accordance with some embodiments.

FIG. 13B shows a front, perspective view of the antenna mounting bracketof FIG. 13A.

FIG. 14A shows a perspective view of an exemplary camera mount, inaccordance with some embodiments.

FIG. 14B shows a front-side, flat representation of the camera mount ofFIG. 14A.

FIG. 14C shows a front-side view of the camera mount of FIG. 14A.

FIG. 14D shows a side-side view of the camera mount of FIG. 14A.

FIG. 14E shows a bottom-side view of the camera mount of FIG. 14A.

FIG. 15A shows a perspective view of an exemplary connector box with aL-bracket, in accordance with some embodiments.

FIG. 15B shows a rear-side, flat representation of the connector box ofFIG. 15A.

FIG. 15C shows a rear-side view of the connector box with a L-bracket ofFIG. 15A.

FIG. 16A shows a perspective view of the connector box of FIG. 15A.

FIG. 16B shows a top-side view of the connector box of FIG. 16A.

FIG. 16C shows a bottom-side view of the connector box of FIG. 16A.

FIG. 16D shows a rear-side view of the connector box of FIG. 16A.

FIG. 16E shows a side-side view of the connector box of FIG. 16A.

FIG. 17A shows a perspective view of the L-bracket of FIG. 15A.

FIG. 17B shows a top-side view of the L-bracket of FIG. 17A.

FIG. 17C shows a rear-side, flat representation of the L-bracket of FIG.17A.

FIG. 17D shows a rear-side view of the L-bracket of FIG. 17A.

FIG. 17E shows a side-side view of the L-bracket of FIG. 17A.

FIG. 18 shows a wiring diagram for various components of an exemplarysmart mirror, in accordance with some embodiments.

FIG. 19 shows an image of an exemplary biometric sensor worn on a user'swrist, in accordance with some embodiments.

FIG. 20 shows an image of an exemplary biometric sensor worn around auser's ribcage, in accordance with some embodiments.

FIG. 21 shows a flowchart of an exemplary method of setting up and asmart mirror in conjunction, in accordance with some embodiments.

FIG. 22 shows a summary of the various wireless connections used tocommunicatively couple a smart mirror to a smart device, in accordancewith some embodiments.

FIG. 23A shows an exemplary icon displayed on the smart mirror toindicate the smart mirror is disconnected from the smart device, inaccordance with some embodiments.

FIG. 23B shows a pause notification displayed on the smart mirror whenthe application is closed, minimized, or the smart device enters sleepmode, in accordance with some embodiments.

FIG. 24A-1 through 24A-3 show a flowchart of an exemplary healingprocess when loading the application, in accordance with someembodiments.

FIGS. 24B-1 through 24B-2 show a flowchart of an exemplary healingprocess when a connectivity break occurs during a workout, in accordancewith some embodiments.

FIGS. 24C-1 through 24C-3 show a flowchart of an exemplary healingprocess when a user accesses the application settings, in accordancewith some embodiments.

FIG. 25 shows a flowchart diagram describing how the smart mirror iscommunicatively coupled to another device via a Bluetooth Low Energyconnection, in accordance with some embodiments.

FIG. 26A shows a flowchart describing an exemplary method of using asmart mirror with a HostAP mode, in accordance with some embodiments.

FIG. 26B shows a flowchart for the ‘Attempt Connection’ process of FIG.26A.

FIG. 26C shows a flowchart describing an exemplary method of connectinga device with an iOS operating system to the smart mirror and/or settingup a network connection, in accordance with some embodiments.

FIG. 27 shows an exemplary graphical user interface (GUI) on a smartphone, in accordance with some embodiments.

FIG. 28A shows an exemplary GUI on the smart device to controlconnectivity of a smart device to a smart mirror and/or a networkconnection, in accordance with some embodiments.

FIG. 28B show an exemplary GUI on the smart device showing notificationswhether the smart mirror is connected to the smart device, in accordancewith some embodiments.

FIG. 28C shows an exemplary GUI on the smart device to customize theuser interface of the smart mirror and/or the smart device, inaccordance with some embodiments.

FIG. 28D shows an exemplary GUI on the smart device to manage connectionof the smart device to various peripheral device such as an audio deviceor a biometric sensor, in accordance with some embodiments.

FIG. 28E shows an exemplary GUI on the smart device to select a musicsource such as the local device or a third party service, in accordancewith some embodiments.

FIG. 28F shows an exemplary GUI on the smart device of music playlists,in accordance with some embodiments.

FIG. 29A shows an exemplary GUI on the smart device to browse and selecta fitness class from a listing of fitness classes, in accordance withsome embodiments.

FIG. 29B shows an exemplary GUI on the smart device of filters used tonarrow down a listing of fitness classes, in accordance with someembodiments.

FIG. 29C shows an exemplary GUI on the smart device of an exemplaryselection of a fitness class, in accordance with some embodiments.

FIGS. 30-31 are flowcharts showing example methods for generatingcustomized interactive video playlists, in accordance with someembodiments,

FIG. 32A shows an exemplary GUI on the smart device to control a fitnessclass played on the smart mirror, in accordance with some embodiments.

FIG. 32B shows an exemplary GUI on the smart device of a workout log, inaccordance with some embodiments.

FIG. 32C shows an exemplary GUI on the smart device to provide userfeedback on an instructor and/or a fitness class, in accordance withsome embodiments.

FIG. 33A shows an exemplary GUI on the smart mirror of a fitness classoverview, in accordance with some embodiments.

FIG. 33B shows an exemplary GUI on the smart mirror of an exemplary userinterface during a workout, in accordance with some embodiments.

FIG. 33C shows an exemplary GUI on the smart mirror of a messagedisplayed to a user based on the user's biometric data, in accordancewith some embodiments.

FIG. 33D shows an exemplary GUI on the smart mirror of a messagedisplayed to a user showing adaptation of the workout based on the userpreferences, in accordance with some embodiments.

FIG. 33E shows an exemplary GUI on the smart mirror of avatars of otheruser's in the same fitness class, in accordance with some embodiments.

FIG. 33F shows an exemplary GUI on the smart mirror with the user'sheart rate displayed on a target heart rate zone, in accordance withsome embodiments.

FIG. 33G shows an exemplary GUI on the smart mirror with a messageindicating the user's heart rate meets a target heart rate zone, inaccordance with some embodiments.

FIG. 33H shows an exemplary GUI on the smart mirror with the user'sheart rate falls outside a target heart rate zone, in accordance withsome embodiments.

FIG. 33I shows an exemplary GUI on the smart mirror with the user'sscore and a target score, in accordance with some embodiments.

FIG. 33J shows an exemplary GUI on the smart mirror with the user'sscore and a target score at a later period of time in the workoutrelative to FIG. 33I.

FIG. 33K shows an exemplary GUI on the smart mirror with the user'sscore and a target score at a later period of time in the workoutrelative to FIG. 33J.

FIG. 33L shows an exemplary GUI on the smart mirror of a user's workoutlog, in accordance with some embodiments.

FIG. 33M shows an exemplary GUI on the smart mirror of a user'sperformance after a particular workout, in accordance with someembodiments.

FIG. 34A shows an exemplary GUI on the smart mirror notifying the usertake an image of themselves, in accordance with some embodiments.

FIG. 34B shows an exemplary GUI on the smart mirror of the user's imageacquired by the camera of the smart mirror, in accordance with someembodiments.

FIG. 34C shows an exemplary GUI on the smart mirror of multiple user'simages, in accordance with some embodiments.

FIG. 35A shows an exemplary instructor user interface on a web browserwith a class schedule and an instructor dashboard of users attending theinstructor's class, in accordance with some embodiments.

FIG. 35B shows an exemplary instructor user interface on a web browserof user information for a specific user in the class, in accordance withsome embodiments.

FIG. 35C shows an exemplary instructor user interface on a web browserof another class schedule, in accordance with some embodiments.

FIG. 36 shows an example implementation in which a user is providedcorrective feedback on exercise form by a smart mirror, in accordancewith some embodiments.

FIG. 37 shows an example implementation in which a smart mirror countsand displays a repetition count for a movement that the user isperforming, in accordance with some embodiments.

FIG. 38 is a flowchart showing an example method for identifyingprioritized users from a plurality of users, in accordance with someembodiments.

DETAILED DESCRIPTION

All combinations of the foregoing concepts and additional conceptsdiscussed in greater detail below (provided such concepts are notmutually inconsistent) are contemplated as being part of the inventivesubject matter disclosed herein. In particular, all combinations ofclaimed subject matter appearing at the end of this disclosure arecontemplated as being part of the inventive subject matter disclosedherein. Terminology explicitly employed herein that also may appear inany disclosure incorporated by reference should be accorded a meaningmost consistent with the particular concepts disclosed herein.

Some aspects disclosed herein may be structurally and/or functionallysimilar to similarly named and/or referenced components in PCTApplication No. PCT/US2019/034292 filed May 29, 2019 (sometimes referredto as the “'292 application”), the entire disclosure of which isincorporated herein by reference.

The concepts introduced discussed in greater detail below may beimplemented in numerous ways. Examples of specific implementations andapplications are provided primarily for illustrative purposes so as toenable those skilled in the art to practice the implementations andalternatives apparent to those skilled in the art.

The figures and example implementations described below are not meant tolimit the scope of the present implementations to a single embodiment.Other implementations are possible by way of interchange of some or allof the described or illustrated elements. Moreover, where certainelements of the disclosed example implementations may be partially orfully implemented using known components, in some instances only thoseportions of such known components that are useful for an understandingof the present implementations are described, and detailed descriptionsof other portions of such known components are omitted so as not toobscure the present implementations.

An Exemplary Smart Mirror

FIG. 1 shows an exemplary representation of a smart mirror 100. Thesmart mirror 100 may include a single board computer (SBC) 110 used tocontrol, in part, the operation of various subcomponents in the smartmirror 100 and to manage the flow of content to/from the smart mirror100 (e.g., video content, audio from the instructor or user, biometricfeedback analysis). The smart mirror 100 may include a display panel 120to show video content, a graphical user interface (GUI) from which theuser may interact and control the smart mirror 100, biometric feedbackdata, and/or other visual content. A camera 130 may be coupled to theSBC 110 to record a video and/or images of a user (e.g., while the useris exercising during a workout). An antenna 140 may be coupled to theSBC 110 to provide data transmission and/or reception between the smartmirror 100 and another device (e.g., a remote control device, abiometric sensor, a wireless router). The antenna 140 may comprisemultiple transmitters and receivers each tailored for a particularfrequency and/or wireless standard (e.g., Bluetooth, 802.11a, 802.11b,802.11g, 802.11n, 802.11 ac, 2G, 3G, 4G, 4G LTE, 5G). An amplifier 150may be coupled to the SBC 110 to receive audio signals from the SBC 110for subsequent sound output through a left speaker 152 and/or a rightspeaker 154. A microphone array 160 may also be used to enable a user toinput voice commands and/or voice inputs to the smart mirror 100 (e.g.,to start/stop a workout, to talk to the instructor). The microphonearray 160 may also be coupled to the SBC 110 and include a digitalsignal processor (DSP).

A switched-mode power supply (SMPS) 170 may also be coupled to the SBC110 to supply and manage electrical power to the various components ofthe smart mirror 100 from an external electrical power supply system(e.g., a wall outlet). A switch 180 may be coupled to the SMPS 170and/or the microphone array 160 to switch the smart mirror 100 and themicrophone array 160 on and off. FIG. 18 shows electrical andlow-voltage differential signaling (LVDS) connections among thesecomponents and an LVDS power connection 1802 and signal connection 1804for the display panel 120.

The smart mirror 100 may also include additional components not shown inFIG. 1 . For example, the smart mirror 100 may include onboard memoryand storage (nonvolatile and/or volatile memory) including, but notlimited to a hard disk drive (HDD), a solid state drive (SDD), flashmemory, random access memory (RAM), and a secure digital (SD) card. Thisonboard memory and/or storage may be used to store firmware and/orsoftware for the operation of the smart mirror 100. As described above,the onboard memory and/or storage may also be used to store (temporarilyand/or permanently) other data including, but not limited to videocontent, audio, video of the user, biometric feedback data, and usersettings. In another example, the smart mirror 100 may include a frame200, described in greater detail below with respect to FIG. 3B, to mountand support the various components of the smart mirror 100.

The smart mirror 100 may be deployed in an environment (e.g., a user'shome, a fitness studio) in several ways. For example, FIGS. 2A and 2Bshow the smart mirror 100 mounted to a stand 210 mounted to the bottomof the smart mirror 100. The smart mirror 100 reflects an image 229 ofthe user (here, taking a picture of the smart mirror 100 with a smartphone) and the surrounding environment. The smart mirror 100 also showsvideo content through a partially reflecting section 226, which blendsnearly seamlessly with a fully reflecting section 228 to reflect theuser's image 229 and the surrounding environment. The fully reflectingsection 228 has a dark background and the partially reflecting section226 is over a display panel 120 (FIG. 3B), which is dark when off toprovide a nearly seamless reflection under ambient lighting.

The stand 210 is used, in part, to position the smart mirror 100 at somedistance above the ground. The stand 210 may be used to support thesmart mirror 100 along a vertical orientation (e.g., a plane of thedisplay panel 120 is parallel to an adjoining wall). The stand 210 mayalso support the smart mirror 100 at a tilted orientation (defined by anangle relative to the wall) as shown in FIGS. 2A and 2B. The stand 210may include a high friction base (e.g., a rubber foot) to prevent thesmart mirror 100 from slipping along the floor when tilted. In somedesigns, the stand 210 may remain fixed relative to the frame 200 or mayallow for articulation of the frame 200 relative to the stand 210 aboutsome motion axis (e.g., a pivot axis). For instance, as the frame 200 isrotated, the stand 210 may remain unchanged in orientation and/orplacement with respect to the floor.

The smart mirror 100 may also be mounted to a wall directly, as depictedin FIG. 2C, or hung from a ceiling (not shown). Again, the smart mirror100 appears completely reflective when the display is off. When thedisplay is on, the display projects video imagery (e.g., of a trainer orexercise instructor) through the partially reflecting section 226 to theuser, who may see a reflected image 229 of herself superimposed on thevideo imagery in the partially reflecting section 226. A fullyreflecting section 228 bordering the partially reflecting section 226also reflect the user's image. And when the display is off, the smartmirror 100 simply appears to be a plain mirror.

The smart mirror 100 may also be supported by a free-standing standroughly vertically. Said in another way, the free-standing stand may siton the ground or another horizontal surface and hold the smart mirror100 so that it faces a user. The free-standing stand may be mounted tothe bottom, the side, and/or the rear of the smart mirror 100. Thefree-standing stand may include one, two, three, or more legs to providea stable platform for the smart mirror 100 (so the smart mirror 100 isunlikely to tip over). Each leg may have a high friction base (e.g., arubber foot) to prevent the stand from slipping. In some designs, atleast one leg may include a wheel to facilitate transport and/oradjustment of the smart mirror 100. Similar to the stand 210, thefree-standing stand may also allow the smart mirror 100 to be tiltedabout a pivot axis.

FIGS. 3A-3D show several views of an exemplary smart mirror 100 with thestand 210 described above. As shown, the smart mirror 100 may besubdivided into several assemblies corresponding to the componentsdescribed above. For instance, the smart mirror 100 may include a frame200 comprising an inner frame 202 and an outer shell 204. The innerframe 202 may be used as a chassis onto which the other componentsdescribed with reference to FIG. 1 are mounted to. The outer shell 204may be used, in part, as an exterior housing to protect the inner frame202 and the various components of the smart mirror 100 containedtherein. The smart mirror 100 may include a display panel 120 mountedinto the inner frame 202. The smart mirror 100 may include mirror glass220 disposed over the display panel 120 to provide reflections of theuser and the user's environment. The smart mirror 100 may also includevarious electronics separated into an upper electronics assembly 230disposed towards the top of the inner frame 202 and a lower electronicsassembly 240 disposed towards the bottom of the inner frame 202.

As shown in FIG. 3C, the upper electronics assembly 230 may include theantenna 140, the camera 130, the microphone 160, and the SBC 110. FIG.3D shows the lower electronics assembly 240 may include the SMPS 170,the switch 180, the amplifier 150, and the speakers 152 and 154.Additionally, the smart mirror 100 may include the stand 210 disposed onthe bottom of the inner frame 202.

The smart mirror 100 in FIGS. 3A-3D represents one exemplary size andaspect ratio. The smart mirror 100, however, may generally be larger orsmaller in size and/or have various aspect ratios. For example, a largersmart mirror 100 may be used to accommodate a taller user and/ormultiple users. A smaller smart mirror 100 may be used to accommodateshorter users and/or to increase portability. Generally, the smartmirror 100 may have a height from about 24 inches to about 96 inches anda width from about 9 inches to about 120 inches. The aspect ratio of thesmart mirror 100 may thus vary according to the respective ranges of theheight and the width disclosed. FIGS. 4A-4E show several views of anexemplary inner frame 202. The inner frame 202 may be dimensioned andshaped to have an interior cavity within which contains the variouscomponents of the smart mirror 100 such as the SBC 110, the displaypanel 120, the camera 130, the antenna 140, the amplifier 150, thespeakers 152 and 154, the microphone array 160, the SMPS 170, and theswitch 180. The inner frame 202 may also include several mounting pointsto mount the aforementioned components to the inner frame 202 usingvarious coupling members including, but not limited to screw fasteners,bolt fasteners, snap fit connectors, and adhesive. The inner frame 202may also include apertures through which the camera 130 and themicrophone 160 may record video and receive sound, respectively, fromthe user in the environment.

FIGS. 5A-5F show several views of an exemplary outer shell 204. Theouter shell 204 may surround, at least in part, the inner frame 202. Forexample, FIG. 3B shows the outer shell 204 has an interior cavity thatmay contain therein the inner frame 202. The outer shell 204 may be usedprimarily to protect the inner frame 202 and the components containedtherein. The outer shell 204 may include a plurality of ventilationholes or perforations to facilitate cooling of the various electroniccomponents in the smart mirror 100. The outer shell 204 may also includea plurality of openings to transmit sound from the speakers 152 and 154to the user. The outer shell 204 may also include an opening throughwhich a port on a connector box is used to receive electrical power.

As shown in FIG. 2C, the smart mirror 100 may also be directly mountedto a wall for deployment. Various wall mounting mechanisms may be usedincluding, but not limited to corresponding hooks on the wall and thesmart mirror 100, a mounting bracket fastened to the wall and the smartmirror 100 via screw or bolt fasteners, and adhesive tape.

FIG. 3C shows an exemplary hook mechanism using a mounting bracket 302 aon the smart mirror 100 and a corresponding mounting bracket 302 b to beattached to the wall. FIGS. 7A-7D show additional views of the mountingbracket 302 b. As shown, the mounting brackets 302 a and 302 b may havea width substantially similar to the width of the outer shell 204 toprovide greater stability when hanging the smart mirror 100 from themounting bracket 302 b. As shown, the mounting bracket 302 a may becoupled to the outer shell 204 using the same mounting points to mountan upper display panel bracket 304 a disposed within the inner frame202. The mounting bracket 302 b may include multiple holes and/or slotsto facilitate attachment to the wall. FIGS. 6A-6D show additional viewsof the mounting bracket 302 a.

FIG. 3C shows a mirror-side safety bracket 306 a and a wall-side safetybracket 306 b. FIGS. 8A-8D show more views of the mirror-side safetybracket 306 a. FIGS. 9A-9D show more views of the wall-side safetybracket 306 b. These safety hooks 306 a and 306 b prevent the smartmirror 100 from tipping over when the smart mirror 100 is mounted to thestand 210. Similar to the wall mounting brackets 302 a and 302 bdescribed above, the safety hook may also comprise a safety bracket 306a mounted to the outer shell 204 of the smart mirror 100 and acorresponding safety bracket 30 b mounted to the wall. As shown in FIG.3C, the safety brackets 306 a and 306 b may be positioned near a centerline (e.g., a vertical axis) of the smart mirror 100 to increasestability.

FIG. 3C shows both the safety brackets 306 a and 306 b and the wallmounting brackets 302 a and 302 b. This is for showing where theserespective components are placed with respect to the other components ofthe smart mirror 100. In practice, the smart mirror 100 may use just thesafety brackets 306 a and 306 b or the wall mounting brackets 302 a and302 b, but not both together.

The inner frame 202, the outer shell 204, the mounting brackets 302 aand 302 b, and the safety brackets 306 a and 306 b may be formed ofvarious materials including, but not limited to steel, aluminum,fiberglass, carbon fiber, polyethylene terephthalate glycol (PETG), andplastic. For example, the inner frame 202, outer shell 204, mountingbrackets 302 a and 302 b, and safety brackets 306 a and 306 b may beformed by patterning a flat sheet of metal, bending the sheet into thedesired three-dimensional shape, and welding adjoining edges to form thefinished component. Additional coatings (e.g., powder coatings, paint)may be applied to the inner frame 202, outer shell 204, mountingbrackets 302 a and 302 b, and safety brackets 306 a and 306 b to reduceenvironmental contamination and/or for aesthetics.

The mirror glass 220 may be a two-way mirror or a two-way mirror filmdisposed on or in front of the display panel 120. The mirror glass 220may thus be semi-reflective and semi-transparent to visible light. Themirror glass 220 may be substantially reflective when the display panel120 is not active or in regions of the display panel 120 that showdarker colors. The mirror glass 220 may be substantially transparent inregions of the display panel 120 that show brighter colors. Said inanother way, the mirror glass 220 may appear reflective to the user whenthe intensity of light reflected by the mirror glass 220 (e.g.,environmental light, natural light, light reflected off objects or theuser in the environment) is greater than the intensity of lighttransmitted through the mirror glass 220 (e.g., light emitted by thedisplay panel 120). Conversely, the mirror glass 220 may appeartransparent to the user when the intensity of light reflected by themirror glass 220 is less than the intensity of light transmitted throughthe mirror glass 220.

The mirror glass 220 may be coupled to the inner frame 202 using variouscoupling mechanisms including, but not limited to a tape, an adhesive, aclamp, a snap fit connector bonded to the mirror glass 220, and a screwfastener or a bolt fastener via a tab or pin bonded to the mirror glass220. A safety film 222 may be attached directly to the mirror glass 220to prevent the mirror glass 220 from shattering: if the mirror glass 220breaks, the pieces of broken glass would remain affixed to the safetyfilm 222. The safety film 222 may be transparent and can be patterned orprinted with opaque (black) regions. For instance, the safety film 222may be transparent over the partially reflecting section 226 of thesmart mirror 100 and opaque over the fully reflecting section 228 of thesmart mirror 100. Additionally, the safety film 222 may not fully coverthe surface of the mirror glass 220. The patterning of the safety film222 may be tailored to create a seamless appearance between the displaypanel 120 and the remaining portion of the mirror glass 220 when thesmart mirror 100 is viewed from the front.

Double-sided adhesive tape 224 may be used to attach the mirror glass220 to the inner frame 202 within the frame 200, as shown in FIG. 3B. Onone side, the adhesive tape 224 is attached directly to the surface ofthe inner frame 202. On the other side, the adhesive tape 224 isattached to the safety film 222 or to the exposed mirror glass 220.

The mirror glass 220 may also be removable from the frame 200 afterinstallation to allow replacement of the mirror glass 220 (as opposed tothe entire smart mirror 100) in the event the mirror glass 220 isdamaged. This may be accomplished by bonding the mirror glass 220 andsafety film 222 to a set of pins or tabs that fit into a correspondingset of holes or slots in the frame 200. The number and distribution ofpins and/or tabs may be tailored to reduce stress concentrations on themirror glass 220 when assembled. The pins or tabs may be coupled to theframe 200 using a coupling member including, but not limited to a screwfastener, a bolt fastener, and a snap fit connector. The coupling memberis configured to securely mount the mirror glass 220 to the frame 200but may also allow a user to subsequently disassemble the smart mirror100 to remove/replace the mirror glass 220.

The mirror glass 220 may be formed from various materials including, butnot limited to glass, acrylic, mylar, plexiglass, a thermoplastic,polymethyl methacrylate (PMMA), or any other materials transparent tovisible light. The reflective properties of the mirror glass 220 may bemodified by a coating disposed by a partially reflective coating formedof various materials including but not limited to aluminum, silver, anddielectric coatings (e.g., a Bragg mirror). The safety film 222 may beformed from a flexible thin film polymeric material. The double-sidedadhesive tape 224 may be various types of adhesive tapes including, butnot limited to a very high bonding (VHB) tape, an ultra-high bonding(UHB), and an acrylic foam tape (AFT).

The smart mirror 100 may also be stylistically reconfigurable. Forexample, the smart mirror 100 may appear float when mounted to a wall.In this configuration, the edges of the mirror glass 220 may be fullyexposed. The mirror glass's lateral dimensions may be equal to or largerthan the lateral dimensions of the frame 210 located behind the mirrorglass 220 as shown in FIGS. 10A-10D. As described above, the frame 200may contain therein the various components of the smart mirror 100(e.g., the SBC 110, the display panel 120, the camera 130, the antenna140, the amplifier 150, the speakers 152 and 154, the microphone array160, the SMPS 170, and the switch 180). Thus, a user directly facing thefront of the smart mirror 100 may be unable to observe the frame 200located behind the mirror glass 220, giving the impression that thesmart mirror 100 is floating in space parallel to the wall.

Conventional floating mirror displays are typically two-piece assemblieswhere the mirror glass is positioned in front of the display. The mirrorglass is typically hung from an elevated position, such as a ceiling orwall, and positioned in front of the display, which may also be hungfrom the ceiling or wall. This two-piece assembly increases installationcomplexity and limits the conventional mirror displays to environmentswhere such mounting points are available. Other types of conventionalmirror displays may be assembled in a framed configuration where a frontside frame and a back side frame are joined together to hold the mirrorglass in place. For this configuration, the edges of the mirror glassmay be obscured by the front side frame and the front side frame may beobserved by a user, thus affecting the aesthetic quality of the floatingmirror configuration.

In contrast, the smart mirror 100 described herein may be constructedsuch that the mirror glass 220 is attached to a frame 200 thus forming aone-piece assembly. In the exemplary smart mirror 100 shown in FIG. 3A,the mirror glass 220 is bonded to a safety film 222. The safety film222, in turn, is bonded to the inner frame 202 with double-sidedadhesive tape 224. In this manner, the mirror glass 220 may be attachedto the frame 200 such that the smart mirror 100 appears to float inspace when mounted directly to a wall.

The smart mirror 100 may also allow for a decorative frame to be mountedon the front and/or side of the smart mirror 100. The decorative framemay be coupled to the outer shell 204 of the frame 200 located behindthe mirror glass 220. The decorative frame may be coupled to the outershell 204 using one or more coupling members including, but not limitedto a screw fastener, a bolt fastener, and a snap fit connector. Thedecorative frame may also be coupled to the outer shell 204 using one ormore magnets, thus increasing the ease of installation and reducing theassembly time. In some designs, the smart mirror 100 may include adecorative frame mounted on the edges of the mirror glass 220. If a userwishes to replace the decorative frame, the user may disassemble thesmart mirror 100 using the pins or tabs described above to replace themirror glass 220.

FIGS. 11A-11F show additional views of the stand 210 may be used tosupport the smart mirror 100 in a substantially vertical orientation(with or without tilt). The stand 210 is comprised of a U-shaped bracket214 disposed beneath the inner frame 202 and the outer shell 204. TheU-shaped bracket 214 is joined to a top bar 216. As shown, the U-shapedbracket 214 and the top bar 216 may be shaped and dimensioned to conformto the outer shell 204, thus providing a continuous surface around thesides of the smart mirror 100. The top bar 216 may include openings forthe speakers 152 and 154. The top bar 216 may also include an openingthrough which the switch 180 may be accessed by the user. The stand 210may also include a high friction base 212 (e.g., rubber feet) disposedon the bottom of the U-shaped bracket 214 as shown in FIG. 3B. The highfriction base 212 may be used to prevent the smart mirror 100 fromslipping along the floor, especially when the smart mirror 100 ispartially tilted. The U-shaped bracket 214 and the top bar 216 may beformed of various materials including, but not limited to steel,aluminum, fiberglass, carbon fiber, polyethylene terephthalate glycol(PETG), and plastic.

The height of the mirror glass 220 and/or the display panel 120 of thesmart mirror 100 may also be adjustable to accommodate different userswith different heights. The smart mirror 100 may be designed to have aparticular height range to accommodate a majority of users. If a userfalls outside of this height range, the smart mirror 100 may be adjustedaccordingly. Height adjustment may be accomplished in several ways. Inone example, a slot-rail mechanism may be integrated into the smartmirror 100 using the frame 200 and the stand 210. For instance, theframe 200 may incorporate at least one slot between the outer shell 204and the inner frame 202 to accommodate a rail on the stand 210. The railon the stand 210 may thus be slidably adjustable along the slot in theframe 200. A locking mechanism may be included to secure the rail to theslot at a desired position. The locking mechanism may come in variousforms including, but not limited to a ratcheting mechanism that allowsmotion along one direction (e.g., extension of the rail relative to theslot) and a release mechanism to allow motion in the opposite direction,a plurality of holes in the slot (or rail) with a spring-mounted pin inthe rail (or slot) for securement, a clamping mechanism (e.g., a lockingtab) to hold the rail against the slot via a frictional force.

The electronic components of the smart mirror 100 may be disposed invarious locations on the inner frame 202 and the outer shell 204. In theexemplary smart mirror 100 shown in FIGS. 3A-3D, the electroniccomponents are disposed primarily in the upper electronics assembly 230and the lower electronics assembly 240 to simplify assembly and placerespective components in preferred locations on the smart mirror 100with respect to where a user may be located. Any wiring to electricallycouple the electronic components may be routed along the inner frame 202and/or the interior cavity of the outer shell 204.

The display panel 120 is primarily used to show video content to theuser. The display panel 120 may be various types of displays including,but not limited to a liquid crystal display (LCD), a light emittingdiode (LED) display, an organic light emitting diode (OLED) display. Thedisplay panel 120 may be configured to emit a lower light intensity whendisplaying darker colors (or may even turn off the respective pixels) inorder to enhance the performance of the two-way mirror glass 220. Insome instances, the display panel 120 may also be touch sensitive toprovide additional interactive control of the smart mirror 100 to theuser. For example, the display panel 120 may employ resistivetouchscreen technology, surface acoustic wave (SAW) technology, acapacitive (e.g., surface capacitance, projected capacitance, mutualcapacitance, self-capacitance) approach, an infrared-based approach(e.g., infrared grid, infrared acrylic projection, and/or the like),optical imaging using image sensors (e.g., CMOS sensors) placed aroundthe edges of the display panel 120, dispersive signal technology, and/oracoustic pulse recognition. The touch sensitivity may be calibrated toaccount for the mirror glass 220 and any other intermediate components(e.g., the safety film 222) disposed between the display panel 120 andthe environment. In some cases, the touchscreen capabilities describedherein may be incorporated into the mirror glass 220 instead of, or inaddition to, the display panel 120.

The entirety of the display panel 120 may be touch sensitive.Alternatively, some portions of the display panel 120 may be touchsensitive such as, for example, where controls are displayed to a user,while other portions of the display panel 120 may not be touch sensitivesuch as, for example, where the exercise instructor is typicallydisplayed, where the user's reflection is expected to fall during aworkout, and/or the like. In some cases, the portions of the displaypanel 120 that are touch sensitive may be dynamically re-configurable.For example, the entire display panel 120 may be touch sensitive whenthe user is browsing a large menu of selectable workouts, and a smallerportion of the display panel 120 may be touch sensitive during anongoing workout, say corresponding to a displayed option to pause orstop the workout in a top right-hand corner of the displayed interface.In some cases, the displayed interface may include, as visual guidanceto the user, a different color for such displayed options thatcorrespond to the portion of the display panel 120 that is touchsensitive at that time. For example, an icon to end a workout may besurrounded by a grey border or halo that indicates the touch-sensitiveregion of the display panel 120 at that time.

As shown in FIGS. 3C and 3D, the display panel 120 may be mounted to theinner frame 202 using an upper display panel bracket 304 a and a lowerdisplay panel bracket 304 b. FIGS. 12A-12F show additional views of theupper display panel bracket 304 a. The upper display panel bracket 304 aand the lower display panel bracket 304 b may be coupled to the innerframe 202 and the display panel 120 respectively using various couplingmechanisms including, but not limited to screw fasteners, boltfasteners, snap fit connectors, or adhesive. The upper display panelbracket 304 a and the lower display panel bracket 304 b may be formed ofvarious materials including, but not limited to steel, aluminum,fiberglass, carbon fiber, polyethylene terephthalate glycol (PETG), andplastic.

The antenna 140 may comprise multiple antennas that each function as areceiver and/or a transmitter to communicate with various externaldevices, such as a user's smart device (e.g., a computer, a smart phone,a tablet), a biometric sensor (e.g., a heart rate monitor), and/or aremote server or cloud server to stream or play video content. Onceagain, the antenna 140 may conform to various wireless standardsincluding, but not limited to Bluetooth, 802.11a, 802.11b, 802.11g,802.11n, 802.11ac, 2G, 3G, 4G, 4G LTE, and 5G standards.

FIGS. 13A and 13B show an antenna mounting bracket 1300 that can be usedto hold the antenna 140 in place. The antenna mounting bracket 1300 maybe formed of various materials including, but not limited to steel,aluminum, fiberglass, carbon fiber, polyethylene terephthalate glycol(PETG), and plastic.

The microphone 160 may be used to record a user's voice and/or otherambient sounds. The microphone 160 may include a muffler to reduceunwanted ambient noise (e.g., a fan or street noise) from being acquiredby the smart mirror 100. Similar to the camera 130, audio recorded bythe microphone 160 may be shared with another person (e.g., aninstructor or another user) in real-time or recorded for later playback.In one aspect, the audio may be acquired with the video of the userusing timestamps that ensure the audio is synced to the video. Themicrophone 160 may also be coupled to the amplifier 150 to control thesound output from the speakers 152 and 154. For example, when a userspeaks, the microphone 160 may send a signal to the amplifier 150 toreduce the sound output from the speakers 152 and 154 to avoid unwantedaudio feedback. The microphone 160 may be used, in part, to enable voicecontrol of the smart mirror 100. For example, a user mayactivate/deactivate the smart mirror 100 and navigate, start, and stopworkouts with their voice. For example, the SBC 110 can provide forvoice control, such as via a voice-user interface (VUI) and/or any othersuitable approach, that permits the user to provide spoken command, viathe microphone 160 for example, and/or via any other suitable interface.The voice control can be generally employed for providing user input forany aspect of operation of the smart mirror 100 such as, for example,control of the mirror 100 (e.g., “turn off”), for interaction with themirror (e.g., “find a yoga workout under 30 minutes”), and/or the like.Voice control may be capable of recognizing the speaker for speakeridentification, speaker verification (e.g., logging in the user viavoice recognition), and/or the like (e.g., using pattern recognitiontechniques such as frequency estimation, hidden Markov models, Gaussianmixture models, pattern matching algorithms, neural networks, matrixrepresentation, vector quantization, decision trees, and/or the like),enabling multiple users to use the same mirror 100 at the same time(e.g., as described below for user groups) or at different times.

The left and right speakers 152 and 154 may be used to output sound tothe user (e.g., instructions from the instructor, music, sound effects).The speakers 152 and 154 may be low profile and configured to emit soundin one or more desired frequency bands. In some designs, the speakers152 and 154 may be oriented to emit sound in a direction transverse tothe front of the mirror glass 220 (e.g., towards the floor or theceiling) to reduce the thickness of the smart mirror 100 as shown inFIG. 3B. In some designs, the speakers 152 and 154 may be oriented toemit sound in a direction towards a user located in front of the mirrorglass 220. In this configuration, sound may be emitted through openingson the front of the smart mirror 100 (e.g., openings in the mirror glass220). The mirror glass 220 may also vibrate with the speakers 152 and154 to produce sound emitted towards the user. The mirror glass 220 maythus be tuned to emit sounds at frequencies that may be otherwiseunavailable in a front-facing, low-profile speaker. The sound output maybe controlled, in part, by the amplifier 150.

As described above, the camera 130 in the smart mirror 100 may be usedto acquire video and/or still images of the user while the user performsan activity (e.g., a workout). The video of the user may then be sharedwith an instructor to allow the instructor to observe and provideguidance to the user during a workout. The video may also be shared withother users of other smart mirrors for comparisons or competition. Thevideo of the user may also be shown on the display panel 120 inreal-time or stored for subsequent playback. For example, the video ofthe user may be used for self-evaluation during or after a workout byproviding a visual comparison of the user to the instructor. Storedvideo may also allow user to evaluate their progress or improvement whenperforming similar exercises over time.

The video may also be processed, in real-time during a workout or aftera workout is finished, to derive biometric data of the user based on themovement and motion of the user. For example, image analysis techniquesmay be used to determine various aspects of a user's workout including,but not limited to a user's breathing rate as a function of time, auser's performance in reproducing a proper form or motion of aparticular exercise, the number of repetitions performed by the userduring a workout, stresses on a user's limbs or joints that may lead toinjury, and a user's stamina based on deviations of a particularexercise over time. This biometric data derived from the video may beused in combination with biometric data acquired by a biometric sensorworn by the user to provide a user additional analysis on their workout.

The camera 130 may be one of several cameras mounted in or on the smartmirror 100, where each camera may be configured to image differentaspects of a user. The camera 130 may include a standard web camera. Inanother example, the camera 130 may include a spatial motion sensingcamera (e.g., a Microsoft Kinect) capable of tracking a user's motionwithin a three-dimensional (3D) space. The motion sensing camera mayhave sufficient spatial resolution to track individual extremities(e.g., arms, legs, hands, feet, fingers, toes). This data may be used toreconstruct a high fidelity 3D model of the user that is animated inaccordance to the user's movement as a function of time. The 3D model ofthe user may thus provide additional information to the user and/or theinstructor to assess a user's performance in executing a workout and toguide the user on proper form and technique. For example, the 3D modelmay be displayed to the user with a comparison to a second 3D model ofanother person (e.g., the instructor) performing an exercise with acorrect form and technique. The motion sensing camera may also be usedto identify and track the motion of multiple users.

In yet another example, the camera 130 may include a thermal camera(e.g., a forward-looking infrared (FLIR) camera) to generate temperaturemaps of the user's skin. These temperature maps may be used to trackspatial and temporal changes to a user's skin temperature during aworkout (e.g., resting, exercising, recovering after a workout), whichmay provide additional biometric data such as a user's hydration levels.

As yet another example, user detection/recognition and motion trackingmay be carried out by the SBC 110 as follows. The SBC 110 may beconfigured for real-time and/or near real-time motion tracking of a userof the mirror 100, such as during a workout, via the video streamacquired by the camera 130. The video stream can be analyzed inreal-time using approaches for user detection/recognition such asmachine learning and/or deep learning. Non-limiting examples of machinelearning approaches for user recognition can include those of theViola-Jones object detection framework, Scale-Invariant FeatureTransform (SIFT), Histogram of Oriented Gradients (HOGs), and/or thelike. Non-limiting examples of deep learning approaches can include YouOnly Look Once (YOLO), Convolutional Neural Networks (CNNs),Region-based Convolutional Neural Networks (RCNN), Fast RCNN, FasterRCNN, Mask RCNN, Single Shot Multibox Detector, and/or the like. In somecases, where the camera 130 can include an infrared camera, the user'sbody temperature can be the basis for user recognition.

The user detection/recognition can be applied to the user's entire body,and/or a body part such as, for example, limbs of the user. The userrecognition that is performed can be specific to the exercise classand/or workout that the user is performing. For example, recognition forthe user's arms can be performed for an upper body workout or for anupper body portion of a workout, while recognition for the user's legscan be performed for a running-in-place workout/portion of a workout. Inthis manner, the SBC 110 can efficiently analyze the relevant portionsof the user's body as required or desired for a specific workout withoutengaging in a potentially computationally-intensive whole-body analysis.

The video stream can also be analyzed in real-time for motion trackingof the user and/or any portion of the user's body, such as limbs. Forexample, once the arms of the user are detected as explained above,their motion can be tracked to determine whether the user is correctlyperforming the workout, as described in more detail later. Motiontracking can include both a) target representation and localization, andb) filtering and data association. Example target representation andlocation techniques can include Kernel-based (mean shift) tracking,contour/boundary tracking, and/or the like. Example filtering and dataassociation techniques can include the Kalman filter, the Particlefilter, and/or the like.

The SBC 110 may be configured to track the user's motion during aworkout to generate a user movement pattern, which can generally becharacterized as any spatio-temporal data/data structure that involvesobjects (i.e., the user's body, or a body portion) moving over time, andcan include trajectory information for the object(s). The user movementpattern can then generally be characterized as the tracked motion of theuser, or body part(s) thereof, over some period of time. The period oftime may be a predefined period, associated with the duration of aworkout within an exercise class, with the entire exercise class, withmultiple exercise classes in a class sequence, and/or the like.

The user's movement pattern can be compared against that of apredetermined movement pattern (sometimes also referred to simply as an‘exercise movement pattern’) such as, for example, an ‘ideal’ movementpattern for that movement. The predetermined movement pattern can bedefined in any suitable way such as, for example, computationally, byaveraging movement patterns generated by multiple instructors presumablyperforming the movement correctly (e.g., an average generated fromvideos of five different instructors performing a squat), and/or thelike. In some cases, the movement of the instructor themselves, during aworkout/exercise class, can be used to generate the predeterminedmovement pattern. Generation of the predetermined movement pattern basedon one or more instructors performing the movement can be done, forexample, using user recognition and motion tracking as described aboveon the instructor(s) performing the movement.

This comparison between the user's movement pattern and thepredetermined movement pattern can be used to generate a score based onhow well the user performs the movement and/or follows the instructor,provide corrective feedback to the user to improve their form during orafter an exercise class, and/or the like. As a non-limiting example, thecomparison can be generally be performed as follows. User recognitionand motion tracking can be employed to generate the user movementpattern. In some cases, the exercise video is one that was previouslyarchived and already includes (e.g., as metadata) the exercise movementpattern for at least a portion of the exercise class.

The comparison between the user movement pattern and the exercisemovement pattern can be performed in any suitable manner. For example,when a user is asked to perform a set of ten squats, then the degree ofbend in the user's knee on the first squat, which is tracked andcaptured in the user movement pattern, can be compared to the estimatedknee bend per the exercise movement pattern. If the user does not squatto at least the same degree, or within some predetermined tolerance(e.g., within 5 degrees of knee bend), the comparison can include aquantitative and/or qualitative calculation of a difference, e.g., adelta measure for that movement, such as difference in squat angle,simply an indication that the user has not achieved the desired form(here, squat depth), and/or the like. Generally, the tolerance can becharacterized in any suitable manner, such as in angle, degree,length/distance, percentage (e.g., within 5% of vertical alignment,within 5% of horizontal alignment, and/or the like), and/or the like. Asanother example, when a user is instructed to perform jumping jacks, themotion of the user's arms and legs can be tracked to ensure fullextension. As yet another example, when the user is instructed toperform a plank, the entire body of the user can be monitored to ensurecorrect posture/form.

The SBC 110 can use the comparison as a basis for selecting a correctivemovement pattern to present to the user, so as to inform the user on howto correct their form. Each movement may have associated with it a setof corrective movement patterns that can be presented to the user,depending on the error in the user's form. Corrective patterns can beestablished, for example, manually, based on machine learning techniques(e.g., trained on such manually created data), and/or the like.

For example, one set of corrective movement patterns may be to ask theuser to go lower on a squat, another set of corrective movement patternsmay be to ask the user to keep their heels on the ground during a squat,and/or the like. So when the delta measure indicates that the user didnot squat to the same degree as specified by the exercise movementpattern (and accounting for any tolerances), the SBC 110 can select thecorrective movement pattern that asks the user to go lower on a squat.

FIG. 34 illustrates how such a corrective movement pattern can bedisplayed to the user 3410 via a smart mirror 3400, which may bestructurally and/or functionally similar to the mirror 100. Illustratedfor the example where the user 3410 is performing alternating shoulderpresses, the corrective movement pattern can include illustrating, viathe arrows 3420 a and 3420 b, to move one arm up to a greater degree (asindicated by the arrow 3420 a), and the other arm back down to a greaterdegree (as indicated by the arrow 3420 b). When the user 3410 isperforming multiple shoulder presses, the motion can be detected andanalyzed for the first few repetitions, and result in the illustrationof the corrective movement pattern of FIG. 34 . If/when the user 410attains the correct form (e.g., for at least 2 repetitions), theindication of the corrective movement pattern may be removed from thedisplay. In some cases, the user can elect to view corrective patternsduring an exercise class irrespective of their own form, which can serveas an additional (to the instructor) guide to the user towards attainingthe correct form.

The display of the corrective movement pattern can include displaying,in real-time an animated image of the user on the display panel 120 suchas, for example, a stick figure, an avatar of the user, and/or the like.The animated image can be sized to be similar to the size of theinstructor or similar to the size of the reflected image of the user(e.g., as estimated by projection analysis of the video stream of theuser). In some cases, the animated image can represent the actual formof the user, so that the user can visualize how their form is improvingresponse to the corrective movement pattern.

The animated image can be generated based on user recognition andtracking as explained earlier, and responsive to determining that theuser's form needs correction. In some cases, the animated image can bedisplayed for the duration of a workout, an entire exercise class,and/or an entire class sequence. The user may be able to manually togglethe display of the animated image to be ON/OFF for a specificworkout/class/class sequence, or globally (e.g., via user accountsettings).

The SBC 110 can additionally and/or alternative use the comparison ordelta measure as a basis for repetition counting for a movement that theuser is performing, for repetitive exercises. Referring again to theexample exercise class where the user is asked to perform a set ofsquats, if the delta measure for a single squat is within somepredetermined threshold (e.g., the user's knee angle is evaluated to bewithin 10 degrees of that of the instructor), that squat can bedetermined to be a valid repetition of the movement. As illustrated inFIG. 35 for a user 3510 performing a squat exercise in front of a smartmirror 3500, such counting 3520 can be displayed to the user in realtime in any suitable manner such as, for example, a single number thatis updated with each repetition, a series of numbers that sequentiallylight up as the user accomplishes those number of repetitions (e.g., aseries of 1, 2, 3 . . . , a series of 5, 10, 15 . . . and/or the like),a progress bar, a bubble filling up with each repetition, and/or thelike. In some cases, the SBC 110 can use the comparison/delta measure asa basis for timing the user. For example, if the user is instructedduring a yoga class to hold a pose for 10 seconds, the comparisoninformation can be used to count for how long the user correctlymaintains the pose.

While generally described herein for real-time analysis, it isunderstood that the user recognition, tracking, repetition counting,and/or the like can be performed on previously acquired video as wellsuch as, for example, an archived video of a user acquired during anexercise class. In this manner, a user can review, at their leisure,their form, how well they were able to perform the desired number ofrepetitions, and/or the like. In some cases, the comparison informationis also stored and presented to the user such as, for example, duringplayback of the archived video, as an indication of a percentage of timeduring the exercise class that the user had the correct form, and/or thelike.

While described herein with respect to the SBC 110, it is understoodthat one or more of user recognition, motion tracking, form correction,repetition counting can be performed remotely such as, for example acloud platform associated with remote storage, with a content provider,and/or the like. For example, an archived or live streamed exercisevideo can be analyzed in real-time on the cloud platform to generate theexercise movement pattern. As another example, video captured of theuser during an exercise class can be transmitted to the cloud platformand be analyzed for form correction and/or repetition counting on thecloud platform itself. In this manner, more computationally intensivealgorithms one or more of user recognition, motion tracking, formcorrection, repetition counting, as well as relatively more complexanalysis, can be performed without necessarily incorporating the complexhardware that may be required to do so into every user's mirror 100.

FIGS. 14A-14E show several views of an exemplary camera mount 1400 thatcan be used to mount the camera 130 to the inner frame 202. The cameramount 1400 may be a mechanical component designed to orient the camera130 such that the field of view of the camera 130 captures the userunder most use cases. For example, FIG. 3C shows the camera mount 1400has bent shape to tilt the camera 130 downwards. The camera mount 1400may be formed of various materials including, but not limited to steel,aluminum, fiberglass, carbon fiber, polyethylene terephthalate glycol(PETG), and plastic.

The smart mirror 100 may be configured to receive electrical inputs froman alternating current (AC) source or a direct current (DC) source. TheSMPS 170 may be compatible with both AC and DC input sources. The SMPS170 may be used, in part, to convert the electrical input into a desiredform for subsequent dissemination to other components of the smartmirror 100. For example, the SMPS 170 may be used to convert AC to DC orDC to AC. The SMPS 170 may also be used to adjust the voltage and/orcurrent of the input to desired values (e.g., increase the voltage from120 V to 240 V, decrease the voltage from 240 V to 120 V).

The SMPS 170 may be configured to receive electrical inputs via a powercord coupled to the smart mirror 100 or a wireless power transfer system(e.g., the smart mirror 100 has a receiver that receives wireless powerfrom a transmitter mounted to a wall via an inductive or capacitivecoupling mechanism). In one example, a standard InternationalElectrotechnical Commission (IEC) cable may be used to connect the SMPS170 directly to a standard wall outlet (e.g., a 120-240V/60 Hz outlet).In some designs, the SMPS 170 may be partially or wholly disposedoutside the frame 200 of the smart mirror 100 (e.g., an AC adapter for alaptop) to reduce the overall size of the smart mirror 100.

The smart mirror 100 may also include a battery (not shown) to providegreater portability. Thus, the deployment of the smart mirror 100 may beless constrained by the location of a power source (e.g., a wall outlet)within a particular room. The battery may be various types ofrechargeable or disposable batteries including, but not limited to alithium-ion battery, a nickel cadmium battery, and a nickel metalhydride battery. A rechargeable battery may be charged by connecting thesmart mirror 100 to a power source (e.g., connecting an IEC cable to awall outlet). The smart mirror 100 may also be configured to operatewhile charging.

The smart mirror 100 may also be turned on or off using a switch 180disposed on the smart mirror 100. The smart mirror 100 may also beactivated or deactivated remotely using another remote control device,such as a computer, a smart phone, or a tablet connected to the smartmirror 100.

FIGS. 15A-17E show several views of an exemplary connector box that mayalso be incorporated into the smart mirror 100. The connector box may beused to house wiring and wiring ports to connect the smart mirror 100 toan external power source (e.g., via an IEC cable). The connector box mayalso house wiring between the SMPS 170 and other electronic componentsin the smart mirror 100. The connector box may be formed of variousmaterials including, but not limited to steel, aluminum, fiberglass,carbon fiber, polyethylene terephthalate glycol (PETG), and plastic.

The smart mirror 100 may also include additional connectors to connectthe smart mirror 100 to other devices, such as a smart phone or atablet. For example, FIG. 3C shows the smart mirror 100 may include aUSB connector 310 disposed towards the top of the smart mirror 100. Insome applications, this connector may be used to provide a wiredconnection for software updates, firmware updates, and diagnostic testsof the smart mirror 100. The connector may also be used to transferpower from the smart mirror 100 to another device (e.g., charging asmart phone).

Biometric Devices and the Smart Mirror

A biometric sensor worn by the user may also be communicatively coupledto the smart mirror 100 to provide biometric data of the user during aworkout. As described below, the smart mirror 100 may display raw and/orprocessed biometric data to the user via the display panel 120. Thisbiometric data may be used for subsequent analysis to evaluate theuser's overall health and for recommending subsequent workouts to theuser. The biometric data may also be used to compare a user's activitylevel or performance to that of other users. Various types of biometricdata may be measured by one or more biometric sensors including, but notlimited to a user's heart rate, a user's step count, the motion of theuser's various extremities, the user's skin temperature, and the user'sperspiration rate. (A user may operate the smart mirror 100 withoutwearing any biometric sensor, in which case biometric data normallyacquired and displayed to the user may be replaced by a blank or adashed mark on the display panel 120 indicating that no biometric datais being acquired.)

The biometric sensor may be worn by the user in various ways. Forexample, FIG. 19 shows the user wearing a biometric sensor 1900 on herwrist. FIG. 20 shows another example of the user wearing a biometricsensor 2000 around her waist. A user may wear multiple biometricsensors, which, in some instances, may be tailored to measure certainbiometric data at certain locations on the user's body. Either biometricsensor may be coupled to the smart mirror 100 wirelessly using variouscommunication protocols including, but not limited to Bluetooth,802.11a, 802.11b, 802.11g, 802.11n, and 802.11ac, either directly or viaa smart phone or wireless router.

Using a Smart Mirror

The smart mirror 100 may be coupled to various devices and controlled,in part, using these devices. For example, the smart mirror 100 may beconnected to a smartphone, a smartwatch, a tablet, a dedicated remotefor the smart mirror 100, a smart exercise equipment (e.g., a treadmill,an exercise bike, a smart dumbbell), or a personal computer. Thesedevices may be networked and/or a web-enabled and thus used to accessvarious fitness-based features in a software application configured towork with the smart mirror 100 (e.g., an app for a Google Android, anApple iOS, or Microsoft Windows device).

The smart mirror 100 may also be used without connection to any device.For example, a user may control the smart mirror 100 using voice controlvia the microphone 160, such as via voice control as explained above.The smart mirror 100 may also be controlled using gesture commands incases where the camera 130 includes a motion sensing camera or byapplying image analysis techniques to video of the user acquired by thecamera 130, as explained above with respect to motion and positiontracking. For example, user arm movement in a video stream acquired bythe camera 130 can be tracked to identify if/when the user makes apredetermined gesture command with their hand, arm, eyes (e.g., eyetracking), and/or the like. The smart mirror 100 may also be controlledusing touch commands in cases where the display panel 120 is touchsensitive in full or in part, as described above.

FIG. 21 shows an exemplary method 2100 of using the smart mirror 100generally comprising a setup process 2101 followed by a use process2102. The setup process 2101 may be comprised of the following steps:(2104) turning on the mirror, (2108) downloading the app on a user'ssmart device, (2112) syncing the smart device to the smart mirror 100via an access point, (2116) syncing the smart mirror 100 to a network,and (2120) creating an account and filling out an onboarding survey. Theuse process 2102 may be comprised of the following steps: (2124)selecting and entering a workout, (2128) displaying the workout on thesmart mirror 100, (2132) collecting the workout progress and biometricdata from a biometric sensor, (2136) displaying post workout statisticsafter the workout ends, (2140) posting a workout survey, and (2144)adding the workout data to a user's fitness progress. Following the useprocess 2102, the smart mirror 100 may include the step of (2148)querying the user to select and enter another workout, which ifselected, leads to a repeat of steps (2128) through (2148). Thefollowing description elaborates upon the various steps shown in FIG. 21.

Connectivity Between the Smart Mirror and Other Devices

As described above, the smart mirror 100 may be connected to variousdevices during operation. To maintain operation, the connection betweenany pair of devices (including the smart mirror 100) should bemonitored. The connection between a specific pair of devices may berepresented as a “connection state.” Thus, multiple connection statesmay be monitored during use of the smart mirror 100.

FIG. 22 shows a partial summary of connectivity options and statesbetween a smart mirror and one or more other devices. These connectionsinclude but are not limited to between: (1) a user's smart device (e.g.,the client) and the smart mirror 100 (e.g., the server), which may bemonitored using a WebSocket protocol and may have values of ‘connected’and ‘closed’, (2) a user's smart device and a Bluetooth low energy(BTLE) device, which may have values of ‘connected’ and ‘disconnected’;(3) a Bluetooth audio device (e.g., the client) and the smart mirror 100(e.g., the server), which may have values of ‘paired-connected’,‘paired-disconnected’, and ‘unpaired’; (4) a user's smart device and anapplication programming interface (API) server, which may be incommunication via a hypertext transfer protocol (HTTP) where theconnection is configured to be on demand with a request/responsestructure such that data is sent as a request and the server respondswith data; (5) the smart mirror 100 and an API server, which may be incommunication via HTTP where the connection is configured to be ondemand with a request/response structure such that data is sent as arequest and the server responds with data; (6) the smart mirror 100 anda streaming service, which may be in communication via a HTTP livestreaming (HLS) protocol and may have values of ‘connected/streaming’,‘buffering’, and ‘disconnected’, and (7) the smart mirror 100 and apublish/subscribe service, which may be in communication via Websocketand may have values of ‘connected’ and ‘disconnected.’

In the event that one device (e.g., the smart mirror 100, a smartdevice, a biometric sensor, a server, a network router) is disconnectedfrom another device, a healing process is used to re-establish andmaintain connection between the devices (also referred to herein as“device healing”). The healing process should preferably be transparentto the user such that when a connectivity problem arises, the workout isnot interrupted.

Generally, a user may connect a smart device (e.g., a smart phone ortablet) to the smart mirror 100 and a biometric sensor (e.g., a heartrate monitor (HRM) via Bluetooth) when installing and/or configuring thesmart mirror 100. The user may also connect other devices, such as aBluetooth audio device (e.g., a speaker or a microphone). The smartmirror 100, biometric sensor, and other accessory devices may be treatedas three distinct categories of devices from the perspective of theuser's smart device. The smart mirror 100 may automatically determinethe points in time and the appropriate length of time for the user'ssmart device to attempt to connect with the previously paired smartmirror 100 and the Bluetooth devices. This process should preferably beperformed without using excessive amounts of the smart device's battery.

Before a healing process is attempted, the user should pair their smartdevice to at least one device in a particular category via a “settings”interface on the application installed on the user's smart device. Thus,a healing process should only be attempted when (1) no devices in aparticular category are connected and (2) at least one device waspreviously paired device is present, but disconnected. The display panel120 of the smart mirror 100 may show an icon when the smart device isdisconnected from the smart mirror 100. An exemplary icon is shown inFIG. 23A, which may be displayed at the top right of the smart mirror100. When the app is closed, minimized, or the smart device enters asleep mode, the workout may be paused as shown in FIG. 23B.

FIGS. 24A-1 through 24A-3, 24B-1 through 24B-2, and 24C-1 through 24C-3show exemplary healing processes for situations where the user isloading the application on their smart device, a connectivity breakoccurs during a workout, and a user accesses the application settings,respectively. As shown in FIGS. 24A-1 through 24A-3 , the healingprocess 2400 a may be configured such that the user's smart deviceattempts to connect to the smart mirror 100 and any previously pairedBluetooth devices (e.g., a biometric sensor or an audio device). Thishealing process 2400 a may be aborted after a scan time of about 30seconds followed by a message to the user indicating failure to connectto a device. If the smart mirror 100 and/or other devices arediscovered, the user's smart device should automatically connect tothese devices. In the event more than one Bluetooth device is found, thehealing process 2400 a may connect to the most recently found deviceand/or may allow the user to select between multiple connected devices.The healing process 2400 a may be repeated under other conditions, suchas when the user is opening a preview of a workout (e.g., WorkoutPreview) in the application on their smart device. Again, the healingprocess 2400 a may run for about 30 seconds before the connectionattempt is aborted.

FIGS. 24B-1 through 24B-2 show a healing process 2400 b for situationswhere any one of the devices described above is disconnected from theuser's smart device during a workout. For instance, when the user opens“Workout Options,” which include several settings for configuring theworkout, the healing process 2400 b may be performed if a previouslypaired device other than the smart mirror 100 is no longer connected tothe user's smart device. Again, this process may run for about 30seconds before the connection attempt is aborted. If a user's smartdevice disconnects from the smart mirror 100 and/or the biometric sensorduring a workout, the workout should preferably continue on the smartmirror 100 unless the user is requested to pause the workout. Once theconnection state between the user's smart device and the smart mirror100 and/or the biometric sensor is healed, the timers and workouts onthe user's smart device should sync to the smart mirror 100. In thismanner, the smart mirror 100 should dictate where the workout userinterface and/or the user's smart device should jump to once healingoccurs. After the workout is finished, the user's profile should beupdated with any relevant workout data regardless of whether aconnectivity issue occurred. If a user's smart device disconnects fromanother device, such as a Bluetooth audio device, the smart mirror 100should output audio in the interim until the audio device is healed.Again, this process may run for about 30 seconds before the connectionattempt is aborted.

FIGS. 24C-1 through 24C-3 show a healing process 2400 c configured forsituations where the user opens the “Settings” interface on the smartdevice. The healing process 2400 c may occur when a previously connectedBluetooth device or the smart mirror 100 is no longer connected. Again,this process may run for about 30 seconds before the connection attemptis aborted.

Data Transfer Using Bluetooth

The smart mirror 100, the user's smart device, and/or other Bluetoothconnected devices may transfer data in a serial manner (e.g., from aclient to a server, from a server to a client) using various wirelesstechnologies, such as Bluetooth Low Energy. Depending on the wirelesstechnology used, a scheme may be devised for various aspects of datatransfer including, but not limited to an initial connection setup,chunking of messages for transfer, message reassembly, and connectionteardown. In the case where Bluetooth Low Energy is used, the scheme maybe used with or without Bluetooth Low Energy security features.

FIG. 25 shows an exemplary process 2500 to connect and transfer dataover Bluetooth Low Energy. Bluetooth Low Energy was included to enablefor low energy transfer of finite amounts of data. Many data profilesare ubiquitously supported by major implementations, but these dataprofiles typically do not support the transfer of stream data.Generally, stream data is sent over a SPP (Serial Port Profile)connection, but in some situations these connections may be unsupportedby the device manufacturer and/or may only be allowed by the devicemanufacturer under specific use cases due to excess consumption ofpower, which limits the use of such connections for practical use.Instead, the smart mirror 100 may use Bluetooth Low Energy using GenericAttributes (GATT) characteristics as the client-server communicationprotocol. The server may accept connections from multiple devicessimultaneously. The communication of messages larger than what thehardware can support may still be sent using a data-chunking processbuilt into the protocol, allowing a theoretically unlimited messagesize.

The initial connection setup may start with the server (e.g., the smartmirror 100) advertising as a Bluetooth Low Energy peripheral. The servermay advertise a GATT service with a single GATT write characteristic.Clients scanning for peripherals (e.g., a user's smart device) maylocate and connect to the available GATT service if the client is withinrange of the server (2502). For Bluetooth Low Energy in particular, aclient connected to the server may be identified by its media accesscontrol (MAC) address either (1) ephemerally without bonding where theMAC address is intentionally modified for security purposes or (2)concretely with bonding where a returning client resolves to the sameunique MAC address. The client may be responsible for ensuring that thefirst data written into the characteristic after connection is a 128-bitunique user identification (UUID) in common readable form, base-10representation separated into sections by dashes with 8, 4, 4, 4, and 12digits respectively (2504). Upon a successful write of the UUID, theserver may advertise another GATT service with the written UUID as itsidentifier and a single GATT read characteristic set up to allownotifications. The client may rescan the server's GATT services andcomplete the connection by subscribing to notifications on the readcharacteristic (2506).

Once a connection is established between the client and the server, datamay be sent in both directions (i.e., from the client to the server,from the server to client) using a simple chunking scheme (2508). Thedata exchange may include protocol agnostic raw data thus allowing anapplication developer to set up their own messaging over the availableconnection. To accomplish chunking, each full message is split intoparts that fit within the Bluetooth Low Energy Minimum Transfer Unit(MTU) size, which is determined by the Bluetooth Low Energy connectionsetup and the platform being used.

The chunking process works as follows: (1) the length of the message tobe sent is computed in units of bytes, (2) a preamble of a fixed bytelength that denotes the size of the total message is prepended to theoriginal message, (3) the message with the preamble prepended is splitinto chunks such that they fit within the MTU, (4 a) in the case ofclient to server messaging, the chunks may be written sequentially intothe servers write characteristic, with confirmation as per the BluetoothLow Energy specification, (4 b) in the case of server to clientmessaging, the chunks may be written sequentially into the servers readcharacteristic for the intended recipient, triggering a notification onthe client as per the Bluetooth Low Energy specification, (5) therecipient (i.e., the server or the client) may read the preamble fromthe first chunk to determine the length of the following message, (6)the recipient may fill a buffer with data from successive chunks untilthe expected number of bytes is received, and (7) the message may thenbe parsed/decoded as needed followed by the recipient continuing tolisten for the next preamble.

Connectivity Using a HostAP Mode

In some configurations, the smart mirror 100 may be configured to use aHostAP mode (also referred to in the art as the “Chromecast mode” due touse in the Google Chromecast device), which is a method of setting up anInternet of things (IoT) device where the IoT device acts as an accesspoint for other devices using the same interface as a standard wirelessrouter. The HostAP mode may provide several benefits: (1) uses wellknown and field tested/proven methodologies, (2) allows application codeto support one path for messaging, (3) prevents the use of otherinterfaces (i.e., there is no need to use Bluetooth or near-fieldcommunication (NFC)), and (4) allows the application layer to usemulticast Domain Name Systems (mDNS) to discover devices on the networkinstead of other approaches such as Bluetooth scanning, which istypically slow and error prone.

Depending on the operating system of the smart device, a user maymanually change the device's settings to connect to the IoT network. Forexample, a user using a smart device with an iOS operating system, suchas an iPhone or an iPad, should go to the settings of their device toconnect to the IoT devices network for initial setup and/or errorrecovery when the network goes out.

The smart mirror 100 may also be configured to operate the HostAP/mDNSmode. FIGS. 26A-26C show exemplary flow charts of the smart mirror 100integrating the HostAP/mDNS functionality. Specifically, FIG. 26A showsa process 2600 a describing the various states of operation for thesmart mirror 100 and the applicable actions for each state. State (I)represents the smart mirror 100 broadcasting its HostAP network. State(II) represents the ‘Attempt Connection Flow’ process 2600 b, which isdepicted in FIG. 26B. If the smart mirror 100 loses connection to thelocal network over Ethernet or Wi-Fi, the network issue and/or setupprompt screen should be displayed on the display panel 120 of the smartmirror 100. State (III) represents the smart mirror 100 being connectedto the network (Ethernet or Wi-Fi) with no internet access, which isshown to the user in the form of a message. In this case, the messagemay be a full screen blocker on the smart mirror 100. Additionally, ifan unknown client device (e.g., a new user id since the smart mirror 100was installed and configured) connects to the smart mirror 100, theunknown client device should be pin-paired to the smart mirror 100first.

FIG. 26C shows a process 2600 c for a smart device running the iOSoperating system to connect to the smart mirror 100 and/or to setup anetwork connection. The various states of operation and the applicableactions for each state are shown. In particular, state (IV) representsrecoverable error state. As shown, the error states are unlikely tooccur while the smart device is connected to the smart mirror's HostAP,but a user interface/contingency process may be included in the eventsuch a failure does occur.

Live Streaming Content

As described above, the smart mirror 100 is configured to show videocontent on the display panel 120 from a studio (e.g., a fitness studio,a classroom). The video content may be streamed as live content or ason-demand content. For example, live content may be recorded and storedon a central repository such that users may later request and play thevideo content, hence becoming on-demand content. For example, after thevideo content is recorded, the video files may be uploaded to Amazon'sS3 storage and transcoded into moving pictures experts' group dynamicadaptive streaming over HTTP (MPEG-DASH) files. This enables rebroadcastof high-quality, adaptive streaming video to the smart mirror 100. Thesmart mirror 100 may also be configured to receive and/or have access tomultiple live streams that are broadcast simultaneously from multiplestudios and/or sound stages. A user may thus have access to multiplelive streams and through the user interface, may browse and/or selectthe desired live stream. In some configurations, the smart mirror 100may use the Google Android operating system and may thus have access tothe Android Exoplayer library to connect the smart mirror 100 to HTTPlive stream (HLS) streams for a user to view a live workout. Thelive-streaming content may also be set to be publicly viewable and/oraccessible or private (limited to select individuals).

In some applications, the smart mirror 100 may be connected to an onlinestreaming service that provides users with third-party video contentstreamed from a server (e.g., directly through a network router orindirectly through a user's smart device). Third party content may beprovided to users on a subscription basis. The third party may providecontent to a centralized distribution platform, which communicates withthe smart mirror 100 over a network. One benefit of a centralizeddistribution platform is that the distribution of content to the smartmirror 100 is simpler. Alternatively, the third party may develop aseparate distribution platform, which may use separate softwareapplications on the smart device for users to access content.

The smart mirror 100 may be configured to provide video content inaccordance to industry-accepted standards, particularly when handlingvariations in network bandwidth. For video streaming, the smart mirror100 may adhere to the HLS authoring specification, which specifiesconditions for changing the video stream quality in real-time to adaptto a user's network bandwidth. For on-demand video content and encoreworkouts, the smart mirror 100 may adhere to the MPEG-DASHspecification, which also provides conditions for changing video qualityin real-time to adapt to a user's bandwidth. For non-video relatedfunctionalities, the smart mirror 100 may be configured to operate inaccordance to industry-standard mobile development methods, including,but not limited to HTTP request retry logic and user interface (UI)/userexperience (UX) prompts to the user that handle various networkconnectivity and latency issues.

Data Storage and Privacy

The smart mirror 100 may also store user information locally on thesmart mirror 100 and/or a remote storage device (e.g., a cloud service)depending on the amount of storage space used. For example, userinformation that uses little storage space may be stored locally on thesmart mirror 100, including but not limited to the user's name, age,height, weight, and gender. Additionally, video content (e.g., a fitnessroutine) may also be stored the smart mirror 100 to reduce the impact ofnetwork latency, which may affect the video streaming quality. Thisamount of video content stored may be limited by the storage capacity ofthe smart mirror 100. In some configurations, the video content may onlybe stored temporarily on a daily or weekly basis or depending on thepercentage of the smart mirror's capacity being used. User informationthat uses a substantial amount of storage space may be stored on aremote storage device including, but not limited to biometric data, suchas the user's heart rate and breathing rate and video recordings of theuser captured during a workout. The smart mirror 100 may retrieve thisinformation for subsequent analysis and display.

The transfer of data between the smart mirror 100 and a remote storagedevice may be secured (e.g., encrypted) in various ways to preventunwanted loss or theft of user information. For example, the BluetoothLow Energy protocol includes built-in security features that may be usedby devices leveraging this protocol. However, these security featuresmay only be used when a Bluetooth bonding step is completed beforeestablishing a connection with encryption. In some cases, varioussecurity mechanisms may not be implemented or may malfunction, at whichpoint application level security may be implemented in combination withthe chunking specification of data described above. For example,Advanced Encryption Standard (AES) encryption of the message may beapplied before prepending the preamble of a message. In some respects,the Bluetooth Low Energy protocol performs a similar process viabuilt-in security features at a firmware level and may provide similarprotection against a person from reading the communications between aclient and a server.

When a client disconnects from a server, the GATT service added for theclient to read/notify messages may be removed from the service record onthe server's device. This ensures that no connections are left open andthe system does not accidentally leak information to nefarious snoopers.This termination of the connection may be triggered by either the serveror the client and relies on the Bluetooth Low Energy stack to provide anotification to both sides that the connection has closed. If Bluetoothbonding was used in the initial connection setup to provide firmwarelevel encryption security, the bond information may be stored on eachdevice such that bonding does not need to be repeated followingsubsequent connections between the client and the server.

A User Interface for the Smart Mirror

A user may control the smart mirror 100 using a smart phone or tablet orby interfacing directly with the smart mirror 100 (e.g., a voice controlcommand, a gesture command via the camera 130, a touch command via thedisplay panel 120). A graphical user interface (GUI) may be provided tofacilitate user interaction with the smart mirror 100. The GUI may beadapted to conform to different user inputs dependent on the manner inwhich a user interfaces with the smart mirror 100. For example, a GUI ona user's smart phone may allow the user to change settings of the smartmirror 100, select/browse various fitness classes, and/or changesettings during a workout.

FIG. 27 shows an exemplary GUI displayed on a user's smartphone. The GUImay support touch commands and may be designed to accommodate the sizeof the display on the user's smart phone. In another example, a GUI on auser's computer may provide a more conventional user interface thatrelies upon inputs from a keyboard and/or a mouse. In yet anotherexample, a GUI on the smart mirror 100 may provide voice or gestureprompts to facilitate user-provided voice commands and gesture commands,respectively. The GUI for the smart mirror 100 may be adapted to supportmultiple types of user inputs (e.g., a controller, a remote, a voicecommand, a user command).

The following description provides several exemplary GUI-relatedfeatures to facilitate user interaction with the smart mirror 100. TheseGUI-related features are categorized according to the followingcategories: settings, browsing and selecting a class, class interface,social networking, and background processes. These categories are usedmerely for illustrative purposes and that certain features may beapplied under several situations that may fall under multiple categoriesand/or use cases. One or more of these features may be adapted and/ormodified to accommodate certain user input types. The GUI may extend tomultiple devices including, but not limited to the smart mirror 100, asmart phone, a tablet, a computer, and a remote control.

Smart Mirror Settings

The GUI may allow the user to modify and choose various settings relatedto the operation of the smart mirror 100. For example, the GUI may beused to initially setup a connection between a user's smart device andthe smart mirror 100 (or the smart mirror 100 and a network). FIG. 28Ashows an exemplary GUI screen used to sync a user's smart phone to thesmart mirror 100 and to connect the smart phone and/or smart mirror 100to a network. As shown in FIG. 28A, the GUI may indicate the status ofthe connection of the smart phone and the smart mirror 100 under asettings screen. FIG. 28B shows the GUI may also show the connectionstatus of the smart mirror 100 and brightness of the smart mirrordisplay 120 while using the GUI to navigate and browse for content.Additionally, the GUI may provide prompts to instruct the user the stepsto connect the user's smart device to the smart mirror 100. Generally,the GUI may enable the user to manage the connectivity between the smartmirror 100, the user's smart device, a network router, and anyperipheral devices (e.g., a biometric sensor or a Bluetooth audiodevice).

The GUI may also enable the user to create a user account when firstusing the smart mirror 100. The user account may be used, in part, tomanage and store user information including, but not limited to theuser's name, age, gender, weight, height, fitness goals, injury history,location, workout history, social network blog, contact list, groupmemberships, ratings/reviews of fitness classes, and leaderboard scores.The user account may also be used to store user preferences and accountsettings. In this manner, the user's information may be stored remotely(e.g., on a server or a cloud service), reducing the risk of accidentaldata loss due to failure of the user's smart device or the smart mirror100. The GUI may be configured to have the user log into their accountbefore using the smart mirror 100. The user information may be storedwithout creation of a user account. For example, the user informationmay be stored locally on the user's smart device or the smart mirror100. Depending on the user's settings, the user information may beshared with other users and/or instructors without the use of a useraccount.

The GUI may further include several settings to customize the smartmirror 100 based on the user's preferences. For example, the brightness,contrast, and color temperature (e.g., a warmer hue, a cooler hue) ofthe display panel 120 of the smart mirror 100 may be manually changed inthe GUI. In some cases, these display parameters may be adjustedautomatically depending on ambient lighting conditions and/or userpreferences. For example, the smart mirror 100 may include an ambientlight sensor that monitors ambient lighting conditions, which may beused to adjust the display parameters according to a particularcriteria. For instance, the smart mirror 100 may adjust the display'sbrightness, contrast, color balance, and/or hue, e.g., for increasingvisibility of the video content in bright ambient light or decreasingblue/green light to reduce eye fatigue and/or disruptions to sleepquality during evening hours.

The GUI may enable the user to change the user interface (UI) layout.For example, the GUI may enable the user to toggle the display ofvarious items during a workout including, but not limited to variousbiometric data (e.g., heart rate, step count, etc.), an exercise timer,a feedback survey for a fitness class or each exercise, and a caloriebar (indicating number of calories burned). Some of these options areshown in the exemplary GUI of FIG. 28C. Additionally, the GUI may enablethe user to change the color or theme of the UI including a differentbackground image, font style, and font size. The layout of the GUIduring a workout may also be modified. For example, the size of thevideo content (e.g., the size of the instructor shown on the displaypanel 120) may be changed based on user preferences. In some cases, thesize of the instructor may also be dynamically varied, in part, toaccommodate exercises captured at different viewing angles and/ordifferent levels of magnification.

The GUI may also include options for the user to change their privacysettings. For example, the user may select the type of informationand/or content that is shared with other users. The privacy settings mayallow users to set the level of privacy (e.g., the public, the group,the subgroup, designated contacts, or the user themselves may haveaccess) for different information and/or content. The privacy settingsmay also include what type of information may be stored remotely (e.g.,on a server, a cloud service) or locally on the user's smart device orthe smart mirror 100.

The GUI may also allow the user to adjust various audio settings on thesmart mirror 100 (and/or a speaker peripheral connected to the smartmirror 100/the user's smart device). The audio settings may include, butis not limited to the volume of music, the volume of an instructor'svoice, the volume of another user's voice, and the volume of soundeffects. Additionally, the GUI may allow the user to select languageoptions (e.g., text and audio) and to display subtitles or captionsduring a workout. The GUI may also allow the user to configure aprerecorded voice, which may be used to provide narration, instruction,or prompts. The gender, tone, and style of the prerecorded voice may beadjusted by the user via the GUI.

FIGS. 28D-28F show how the GUI can be used to select and play music withthe smart mirror 100, such as while exercising during a fitness class orwhile the display is off. FIGS. 28D and 28E show the GUI used to connectto and select a music source. The smart mirror 100 may also supportmusic downloaded locally (e.g., onto onboard storage in the smart mirror100) and/or streamed from external sources and third party services,such as Spotify. The music may also be stored on a remote device (e.g.,a smart phone) and transferred to the smart mirror or speaker via awireless or wired connection. The music may be selected independentlyfrom the activity and may be played by the smart mirror 100 or a speakerconnected to the smart mirror 100 (e.g., Bluetooth speaker).Additionally, the music may be arranged and organized as playlists. Theplaylist may be defined by the user, another user, or an instructor.FIG. 28F shows the GUI may support multiple playlists for the user toselect during a given session with the smart mirror 100.

Browsing and Selecting Smart Mirror Classes (Video Content)

The GUI may also enable the user to navigate and browse various contentavailable to be downloaded and/or streamed to the smart mirror 100. TheGUI may generally provide a list of available fitness classes (includingindividual exercises) a user can select. Various types of content may beincluded, such as live streams, recorded video content, and/orcustomized fitness classes. The content may be arranged such thatpertinent information for each class is displayed to the user including,but not limited to the class name, instructor name, duration, skilllevel, date and time (especially if a live stream), user ratings, and apicture of the instructor and/or a representative image of the workout.Once a particular fitness class is selected, additional information onthe class may be displayed to the user including, but not limited to theclass timeline, the class schedule (e.g., types of exercises), names ofother users registered for the class, biometric data of users whopreviously completed the class, a leaderboard, and user reviews. In somecases, a preview video of the class may be shown to the user eitherwithin the list of fitness classes and/or once a particular fitnessclass is selected.

If the content selected by the user is on-demand, the content may beimmediately played on the smart mirror 100 or saved for laterconsumption. If the content is instead a live stream, an integratedcalendar in the GUI may create an entry indicating the date and time thelive fitness class occurs. The calendar may also be configured toinclude entries for on-demand content should the user wish to play thecontent at a later date. The GUI may show the calendar to provide asummary of reserved fitness classes booked by the user. The calendar mayalso be used to determine whether a schedule conflict would occur if theuser selects a class due to an overlap with another class. The GUI mayalso be linked to a user's third party calendar (e.g., a MicrosoftOutlook calendar, a Google calendar, etc.) to provide integration andease of scheduling particularly with other appointments in the user'scalendar.

The GUI may initially list the fitness classes together as a singlelist. The GUI may provide several categories for the user to select inorder to narrow the listing of classes. The GUI may also include one ormore filters to help a user narrow down a selected listing of fitnessclasses to better match the user's preferences. The filter may be basedon various attributes of the user and/or the fitness class including,but not limited to the exercise type, duration, skill level, instructorname, number of registered users, number of openings available, anaverage user score based on registered users and previous users whocompleted the class, injury, location, age, weight, demographic, height,gender, user rating, popularity, date and time, and schedulingavailability.

The GUI may also be configured to provide a listing of the fitnessclasses the user previously attended. This listing may be furthersubdivided between fully completed fitness classes and partiallycompleted fitness classes in case the user wishes to repeat or finish afitness class. The GUI may also provide a listing of the fitness classesthat the user has designated as favorites. Generally, a fitness classmay be favorited before, during, or after the class by selecting aninteractive element configured to designate the content as the user'sfavorite. The GUI may also provide a listing of featured fitness classesto the user. A fitness class may be featured under various conditionsincluding, but not limited to being selected by a moderator or editor,the popularity (e.g., the number of hits for a certain period of time),and the user rating.

Fitness classes may also be recommended to the user. A listing ofrecommended fitness classes may be generated using a combination of theuser's profile and their social network. For example, recommendationsmay be based on various attributes including, but not limited to theuser's age, weight, height, gender, workout history, ratings, favoritedclasses, group membership, contact lists, skill level, workoutperformance, recommendations from other users and/or instructors, andother users that are being followed via the social network component.The recommendations may be updated and further refined based on feedbackprovided by the user. For example, an initial listing of recommendedfitness classes may be shown to the user. The user may then select asubset of the classes that match the user's interest (or don't match theuser's interest). Based on the selection, an updated listing ofrecommended fitness classes may be presented to the user that moreclosely match the selected classes.

FIGS. 29A-29C show an exemplary GUI for the user to browse and select afitness class. FIG. 29A shows a representative listing of fitnessclasses on the user's smart phone. As shown, the class listing mayinclude the time, instructor name, exercise type, and duration. FIG. 29Bshows an exemplary GUI for selecting one or more filters. As shown, thefilters may include workout skill level, duration, instructor, andexercise type. Once a particular class is selected, the GUI may presentadditional information for the class as depicted in FIG. 29C. Forexample, a brief description of the fitness class may be provided.Additionally, biometric data of the user and/or other previous usersattending the class may be displayed to the user to provide anindication of the workout intensity. The GUI may also includeinteractive elements to start and/or resume the fitness class (e.g., inthe event the user previously started the class, but did not finish).

The GUI may also provide the ability to generate customized fitnessclasses designed to better match user preferences. A customized fitnessclass may be constructed from individual exercises extracted frommultiple fitness classes. The type of exercises included may depend onvarious user information including, but not limited to the user'sfitness goals, age, weight, skill level, biometric data, pastperformance, and the types of exercise chosen by the user (e.g., cardio,strength, stretching exercises). Each exercise may also be modifiedaccording to various aspects including, but not limited to the duration,the number of repetitions, and the exercise conditions (e.g.,resistance, weight, incline angle). Additionally, the order of theexercises may be arranged based on the desired pace of the workout. Forexample, a higher intensity workout may place more difficult exercisestogether within the workout. A lower intensity workout may include morerest breaks distributed throughout the workout. The total duration ofthe customized workout may also depend on user preferences including,but not limited to a user-defined duration, the number of calories theuser wishes to burn, and biometric data to determine a preferredduration for the user to meet their fitness goal while reducing the riskof injury (e.g., due to overexertion, dehydration, muscle strain).

Queued Classes and Playlists

The GUI may also provide the ability to generate chain, concatenate,and/or otherwise combine multiple, entire fitness classes into a classsequence (e.g., a “playlist”) for a user and/or a group of users. Anexample class sequence could include a 15-minute yoga class for warmup,followed by a 30-minute high intensity interval training (HIIT) class,and followed by a 10 minute abdominal workout class. The selectedfitness classes in the class sequence, the duration of the classsequence, as well as the ordering of the selected fitness classes withinthe class sequence, may independently be user-specified or automatedsuch as, for example, as a recommendation of a class sequence for a useror a group of users. The fitness classes included in the class sequencemay depend on various user information and/or user group informationincluding, but not limited to the user's fitness goals, age, weight,skill level, biometric data, past performance, injury, the types ofexercise chosen by the user (e.g., cardio, strength, stretchingexercises), the user group's fitness goals, group preferences, averagegroup skill level, group biometric data, past group performance, pastexercise class selections by the user group, and/or the like. Thefitness classes within a class sequence can ‘auto-play’, i.e., as soonas one fitness class in the sequence ends, the next fitness class in thesequence begins, and so on, until the last fitness class is finished,without requiring any user input. In some cases, a predetermined waitingperiod may be inserted between adjacent classes within the sequence(e.g., 30 seconds, to permit the user to pause or stop the classsequence, to take a hydration break without having to pause or stop theclass sequence, etc.). Alternatively, transition from any fitness classto another fitness class can require user input. Given this ability of auser to assemble a fitness class or program from individual workouts,and to concatenate entire fitness classes as well, a wide variety ofcustomized exercise routines are available to the user and to usergroups.

In some embodiments, a “build your workout” method includes a usercreating a listing or queue of workout “modules” or segments that can bechained together (e.g., using stitching, optionally interspersed withinterstitial content such as a transition video or a time delay) to forma playlist compilation (also referred to herein as a “customizedinteractive video playlist”) that can subsequently played (e.g., witheach module or segment played in sequence, or on shuffle, or rearrangedby the user) on a smart mirror and/or smart device (e.g., mobile device)of the present disclosure. As used herein, “interstitial content” canrefer to video (whether live or pre-recorded), graphic imagery, oranimation that is included within a customized interactive videoplaylist at any location within the associated data file (e.g., beforethe first video segment of the customized interactive video playlist,between any two adjacent video segments of the customized interactivevideo playlist, or after a final video segment of the customizedinteractive video playlist). The playlist compilation can be named,labelled, stored, replayed, broadcast to other users, shared as a filewith other users, posted via social media, etc. Each workout module orsegment can include live video of an instructor, live video of anotheruser from a networked plurality of users, pre-recorded video,interactive video or other media (e.g., advertising content), etc. Theworkout modules or segments may, collectively, be of a common workouttype (e.g., all running or all strength training), or may includemultiple different workout types.

In some embodiments, a customized interactive video playlist is storedin a data file that includes a plurality of data fields. The data fieldscan include (but are not limited to) any combination of the following:playlist duration, segment duration, number of segments, segment workouttype, interstitial content start time, interstitial content end time,adjacent interstitial content identifier, instructor identifier, userlocation identifier, instructor location identifier, scenery identifier,user identifier, user setting(s), user permission(s), friendidentifier(s), volume adjustment data, display adjustment data,biometric sensor status(es) (ON/OFF), target device type, target deviceidentifier, segment historical performance score, segment historicalbiometric data, playlist rating(s) (e.g., average playlist rating),segment rating(s) (e.g., average segment rating(s)), number ofhistorical playlist plays, number of historical segment plays, anindication of whether the segment is a live video segment or apre-recorded segment, a live segment start time, a live segment endtime, a storage location for a pre-recorded segment, a storage locationfor an interstitial content, etc. Any of the foregoing data fields canbe set to a desired value by a user, via interaction with a GUI of anapp running on a smart mirror and/or smart device. Alternatively or inaddition, any of the foregoing data fields can be set to a designatedvalue automatically by the app itself.

At least a subset of the data fields can be organized or grouped, forexample, in a row within associated records each representing a segmentfrom a plurality of segments of the customized interactive videoplaylist. For example, a record for a first segment from a plurality ofsegments of a customized interactive video playlist for a user mayspecify that the segment workout type is a warmup run, having a durationof ten minutes, with a target device being a smart mirror of the userhaving serial number XX123, the segment may be shared with user A246 anduser B468, the biometric sensor(s) should be OFF (or that any biometricdata is not captured), and the volume should be increased 20% relativeto a baseline volume. A record for a second segment from the pluralityof segments of the customized interactive video playlist for the usermay specify that the segment workout type is a sprint run, having aduration of three minutes, with a preceding transition video (video XX4)of duration 45 seconds, a target device being a mobile device of theuser having serial number MM55, the segment may be not be shared withuser A246 and user B468, the biometric sensor(s) should be ON, and thevolume should be set to a baseline volume. A record for a third segmentfrom the plurality of segments of the customized interactive videoplaylist for the user may specify that the segment workout type is astrength training segment, having a duration of twenty minutes, with noadjacent transition video, a target device being the mobile device ofthe user having serial number MM55, the segment may be shared with userB171 and the instructor, the biometric sensor(s) should be ON, and thevolume should be muted.

In some embodiments, during user creation of a customized interactivevideo playlist, the user selects video segments by interacting with aGUI of an app running on a smart mirror and/or a smart device of theuser, and once the user has completed selecting the video segments(e.g., once a user selects “Done” via the GUI), the app stores thecustomized interactive video playlist in a data file in local memoryand/or remote memory, and modifies the customized interactive videoplaylist (optionally based on stored user settings and/or preferences)by one or more of: adding interstitial content, adjusting a volumesetting associated with one or more video segments of the customizedinteractive video playlist, adjusting a display setting associated withone or more video segments of the customized interactive video playlist,cropping a portion of one or more video segments of the customizedinteractive video playlist (e.g., such that the customized interactivevideo playlist has a duration less than or equal to a maximum durationthreshold), removing one or more video segments from the customizedinteractive video playlist (e.g., such that the customized interactivevideo playlist has a duration less than or equal to a maximum durationthreshold), etc.

In some embodiments, a customized interactive video playlist isgenerated and/or modified, based on the selected video segments andusing stitching or other methods of joining/concatenating the videosegments. The modification of the customized interactive video playlistcan include modifying one or more of the selected video segments of thecustomized interactive video playlist. The modifying the one or more ofthe selected video segments of the customized interactive video playlistcan be dynamic and/or performed in real-time. For example, the app canautomatically, iteratively or periodically (e.g., in response to adetected event and/or according to a schedule), determine, during agiven video segment or before the first video segment in the customizedinteractive video playlist, an appropriate duration for a next videosegment of the customized interactive video playlist, for example basedon: biometric data associated with the user and determined prior to thatnext video segment, a user modification to a user preference, a changeto an itinerary, duration, or workout plan of that next video segment, achange to an itinerary, duration, or workout plan of a video segmentsubsequent to that next video segment, etc.

In one example, if a user has performed a first video segment of acustomized interactive video playlist, the first video segment directedto a warmup, and the user is currently performing a second video segmentof the customized interactive video playlist, the second video segmentdirected to a “cardio” workout, the app may determine, based on sensordata received by the app, that the user's heartrate is higher than apredefined threshold. Based on the heartrate being higher than thepredefined threshold, the app may adjust a duration of the next (third)video segment, directed to a “cooldown,” such that the cooldown segmentis longer. Alternatively, the app may identify a substitute videosegment to replace the user-defined third video segment, optionallybased on one or more of: a similarity between the type of workoutdepicted in the third video segment and the type of workout depicted inthe substitute video segment, a difference in intensity between theworkout depicted in the second video segment and the workout depicted inthe substitute video segment, an instructor being common to the thirdvideo segment and the substitute video segment, a threshold number of“friends” of the user being registered participants for the substitutevideo segment, a historical rating of the user for the substitute videosegment, a historical rating of at least one friend of the user for thesubstitute video segment, or heartrate data (e.g., a slope of aheartrate curve, a time to reach a predefined heartrate value, etc.)detected by one or more sensors and received by the app during the firstvideo segment. Alternatively, the app may identify an additional videosegment to insert before or after the user-defined third video segmentwithin the customized interactive video playlist, the identification ofthe additional video segment optionally based on one or more of: asimilarity between the type of workout depicted in the third videosegment and the type of workout depicted in the additional videosegment, a difference in intensity between the workout depicted in thesecond video segment and the workout depicted in the additional videosegment, an instructor being common to the third video segment and theadditional video segment, a threshold number of “friends” of the userbeing registered participants for the additional video segment, ahistorical rating of the user for the additional video segment, ahistorical rating of at least one friend of the user for the additionalvideo segment, or heartrate data (e.g., a slope of a heartrate curve, atime to reach a predefined heartrate value, etc.) detected by one ormore sensors and received by the app during the first video segment.

In another example, if a user has performed a first video segment of acustomized interactive video playlist, the first video segment directedto a warmup, and the user is currently performing a second video segmentof the customized interactive video playlist, the second video segmentdirected to a “weightlifting” workout, the app may determine, based onsensor data received by the app, that the user's heartrate is lower thana predefined target value. Based on the heartrate being lower than thetarget value, the app may adjust a duration of the next (third) videosegment, directed to a “cooldown,” such that the cooldown segment isshorter. Alternatively, the app may identify a substitute video segmentto replace the user-defined third video segment, optionally based on oneor more of: a similarity between the type of workout depicted in thesecond video segment and the type of workout depicted in the substitutevideo segment, a difference in intensity between the workout depicted inthe second video segment and the workout depicted in the substitutevideo segment, an instructor being common to the third video segment andthe substitute video segment, a threshold number of “friends” of theuser being registered participants for the substitute video segment, ahistorical rating of the user for the substitute video segment, ahistorical rating of at least one friend of the user for the substitutevideo segment, or heartrate data (e.g., a slope of a heartrate curve, atime to reach a predefined heartrate value, etc.) detected by one ormore sensors and received by the app during the first video segment.Alternatively, the app may identify an additional video segment toinsert before or after the user-defined third video segment within thecustomized interactive video playlist, the identification of theadditional video segment optionally based on one or more of: asimilarity between the type of workout depicted in the second videosegment and the type of workout depicted in the additional videosegment, a difference in intensity between the workout depicted in thesecond video segment and the workout depicted in the additional videosegment, an instructor being different between the second video segmentand the additional video segment (e.g., selecting a more motivatinginstructor, optionally based on a machine learning model associated withthe user), a threshold number of “friends” of the user being registeredparticipants for the additional video segment, a historical rating ofthe user for the additional video segment, a historical rating of atleast one friend of the user for the additional video segment, or userheartrate data (e.g., a slope of a heartrate curve, a time to reach apredefined heartrate value, etc.) for example as detected by one or moresensors and received by the app during the first video segment.

FIGS. 30-31 are flowcharts showing example methods for generatingcustomized interactive video playlists, in accordance with someembodiments.

As shown in FIG. 30 , the method 3000 includes receiving, at 3002, at aprocessor running an app, and in response to a user interaction, by auser, with a graphical user interface (GUI) of a first compute device ofthe user, a request to generate a customized interactive video playlist.The method 3000 also includes causing display, at 3004, via the GUI andin response to the request, of a representation of a plurality ofcontent categories, each content category from the plurality of contentcategories being associated with a plurality of fitness videos. Theplurality of content categories can include at least one of a warm-upcategory, a cardio category, a strength training category, or acool-down category. At 3006, an indication of a selection of a contentcategory from the plurality of content categories is received via theGUI in response to a user interaction with the GUI. The method 3000further includes, at 3008 and in response to the received selectionindication, causing display, via the GUI, of a representation of theplurality of fitness videos associated with that selected contentcategory. The method 3000 further includes, at 3010, in response to eachselection indication, received from the first compute device of theuser, of a fitness video from the plurality of fitness videos for aselected content category from the plurality of content categories,storing a representation of the selected fitness video in a playlistrecord of a database accessible via the processor, to produce thecustomized interactive video playlist, the customized interactive videoplaylist including a plurality of selected fitness videos. If, at 3012,a request is received via the GUI from the user to return to the contentcategories, the method 3000 loops back to step 3004, and the user cancontinue to navigate to different content categories (3006) and selectadditional fitness videos (3008, 3010) for the customized interactivevideo playlist. If, at 3012, a request is not received (e.g., within apredefined time period) via the GUI from the user to return to thecontent categories, or if a user indicates, via the GUI, that thecustomized interactive video playlist is complete, the method 3000terminates or, optionally, includes causing playback, at 3014, via atleast one of the first compute device of the user or a second computedevice of the user, based on the customized interactive video playlist,the playback including sequential display of the selected fitness videosfrom the plurality of selected fitness videos of the customizedinteractive video playlist without requiring further user interaction.The playback can be performed in response to a user request received viathe GUI of the first compute device of the user (e.g., a smart mirror, amobile device, etc.) or via a GUI of a second compute device of the user(e.g., a smart mirror, a mobile device, etc.).

In some embodiments, the method 3000 also includes receiving, from thefirst compute device of the user, a selection of a filter, andmodifying, based on the filter, at least one of the representation ofthe plurality of content categories or the representation of theassociated plurality of fitness videos for the selected contentcategory. The filter can include one of: a length filter, a difficultyfilter, a trainer filter, a muscle group filter, a fitness objectivefilter, an equipment type filter, an equipment category filter, anequipment make filter, or an equipment model filter.

As discussed above, in some embodiments a method for generatingcustomized interactive video playlists includes the sequenced selectionof a first (single) content category, followed by the selection of oneor more fitness videos from that first content category, followed by theoptional selection of a next (second) content category, followed by theselection of one or more fitness videos from that second contentcategory, etc., until the customized interactive video playlist iscomplete. In other embodiments, however, a method for generatingcustomized interactive video playlists can include receiving anindication of selections of multiple content categories from theplurality of content categories, via a GUI and in response to a userinteraction with the GUI. Subsequent to the user's selection of themultiple content categories, the user may be presented with a collectionof fitness videos covering all of the multiple content categories andselect (by interacting with the GUI) the desired fitness videos from thecollection of fitness videos, either in a desired playbacksequence/order or in a first sequence/order that the user cansubsequently rearrange/reorder via the GUI. Alternatively, andsubsequent to the user's selection of the multiple content categories,the user may navigate to each of the selected content categories fromthe multiple content categories, in any order, and make selections offitness video from each of the selected content categories in turn.

In some embodiments, a selected fitness video from the plurality ofselected fitness videos of the customized interactive video playlist isa live-streamed fitness video, and playback commences at a time suchthat the live-streamed fitness video one of: begins after anotherselected fitness video from the plurality of selected fitness videosends, or ends before another selected fitness video from the pluralityof selected fitness videos begins.

In some embodiments, the method 3000 also includes receiving, from thefirst compute device of the user, a command to reorder the selectedfitness videos from the plurality of selected fitness videos, andmodifying the playlist record, in response to the command, to reflect anupdated order of the plurality of selected fitness videos.

In some embodiments, the method 3000 also includes receiving, from thefirst compute device of the user, one of: a command to remove a selectedfitness video from the plurality of selected fitness videos, or acommand to add another fitness video to the plurality of selectedfitness videos, and modifying the playlist record, in response to thecommand, to reflect a modified plurality of selected fitness videos.

In some embodiments, the first compute device of the user is a smartmirror, the second compute device of the user is a mobile device, andthe playback includes: (1) displaying a first selected fitness videosfrom the plurality of selected fitness videos via the smart mirrorduring a first time period, and (2) displaying a second selected fitnessvideos from the plurality of selected fitness videos via the mobiledevice during a second time period different from the first time period.

In some embodiments, the displaying the first selected fitness videosfrom the plurality of selected fitness videos via the smart mirrorduring the first time period is in response to detecting that a locationof the user is within a predetermined range of the smart mirror.

In some embodiments, the displaying the second selected fitness videosfrom the plurality of selected fitness videos via the mobile deviceduring the second time period is in response to detecting that alocation of the user is outside a predetermined range of the smartmirror.

In some embodiments, the user is a first user, and the method 3000 alsoincludes receiving, from the first user and via the GUI, a command toshare the customized interactive video playlist with a second userassociated with a third compute device, and causing display, in responseto the command and via a compute device or the second user, of anotification that the customized interactive video playlist of the firstuser is accessible via the third compute device.

In some embodiments, the method 3000 also includes causing display,during playback and via at least one of the first compute device of theuser or a second compute device of the user, of a user-selectable objectrepresenting an option to modify a duration of a selected fitness videofrom the plurality of selected fitness. The method 3000 also includes,in response to an indication received from the at least one of the firstcompute device of the user or the second compute device of the user ofan interaction with the object, causing display of a representation of aplurality of recommended fitness videos.

In some embodiments, the method 3000 also includes causing display, tothe user via the GUI and at the end of a workout segment playback or atthe end of a customized interactive video playlist playback, of amessage presenting options to the user as to how to proceed (e.g., tocontinue exercise, cool down, discontinue exercise, etc.). Similarly,the method 3000 can include causing display, to the user via the GUI andduring a workout segment playback or during a customized interactivevideo playlist playback (e.g., in response to detecting that the user'sheartrate was higher than a predefined threshold during the workoutsegment or customized interactive video playlist, or if the user'sheartrate exhibits a recovery rate that is slower than a predefinedrecovery rate during the workout segment or customized interactive videoplaylist) of a message presenting options to the user as to how toproceed (e.g., to continue exercise, cool down, discontinue exercise,etc.).

In response to a user reply, input, or selection of an option tocontinue exercise, a set of exercise classes, workout segments, and/orcustomized interactive video playlists may be identified, andrepresentations of the set of exercise classes, workout segments, and/orcustomized interactive video playlists may be presented to the user forselection via the GUI. In some implementations, the app identifies theset of exercise classes, workout segments, and/or customized interactivevideo playlists based on one or more of: the workout segment orcustomized interactive video playlist most recently played back (e.g.,if a legs class was just completed, a leg-based stretch class may beidentified as a candidate for selection), biometric data associated withthe user (e.g., associated with the workout segment or customizedinteractive video playlist most recently played back), one or more usersettings, one or more user preferences, etc. For example, if a user'sheartrate was higher than a predefined threshold during the workoutsegment or customized interactive video playlist most recently playedback, or if the user's heartrate exhibits a recovery rate that is slowerthan a predefined recovery rate during the workout segment or customizedinteractive video playlist most recently played back, a lower-intensityworkout segment or a lower-intensity customized interactive videoplaylist may be identified.

In some embodiments, the method 3000 also includes receiving, duringplayback, sensor data (e.g., including biometric data) associated withthe user, and identifying at least one replacement fitness video basedon the sensor data. The method 3000 also includes displaying, duringplayback and via at least one of the first compute device of the user ora second compute device of the user, of a user-selectable representationof the at least one replacement fitness video.

In some embodiments, the method 3000 also includes, in response to anindication, received from the at least one of the first compute deviceof the user or the second compute device of the user, of an interactionwith the user-selectable representation of the at least one replacementfitness video, modifying the customized interactive video playlist toinclude the at least one replacement fitness video.

In some embodiments, the interaction with the user-selectablerepresentation of the at least one replacement fitness video is a firstuser interaction, and the playback includes displaying, via the at leastone of the first compute device of the user or the second compute deviceof the user, a second selected fitness video from the plurality ofselected fitness videos of the customized interactive video playlistafter a first selected fitness video from the plurality of selectedfitness videos of the customized interactive video playlist hascompleted, in response to a second user interaction.

In some embodiments, fitness videos can be associated with environments(e.g., indoor or outdoor). A customized interactive video playlist caninclude one or more fitness videos having an associated environment, andincludes a prompt (e.g., implemented as interstitial content), precedingeach of the one or more fitness videos, for the user to indicate thathe/she is ready to physically move to the next environment (e.g., “Readyto go outside?” or “Ready to go inside?”). The prompt(s) can bedisplayed to the user via the GUI, and the playing of the next fitnessvideo may be triggered by the user affirmatively indicating, byinteracting with the GUI to respond to the prompt, that he/she is readyto move to the indicated environment.

In some embodiments, the producing the customized interactive videoplaylist further includes combining the selected fitness videos from theplurality of selected fitness videos such that there are substantiallyno gaps between contiguous pairs of the selected fitness videos from theplurality of selected fitness videos during playback.

As shown in FIG. 31 , a method 3100 includes receiving, at a processorand in response to a user interaction, by a user, with a graphical userinterface (GUI) of a first compute device of the user, a request togenerate a customized interactive video playlist (3102). At 3104, themethod 3100 includes causing display, via the GUI and in response to therequest, of a representation of a plurality of content categories, eachcontent category from the plurality of content categories beingassociated with a plurality of fitness videos (e.g., tens, hundreds, orthousands of fitness videos). Each fitness video can be used as a videosegment. The plurality of content categories can include at least one ofa warm-up category, a cardio category, a strength training category, ora cool-down category. At 3106, in response to a selection indication,received from the first compute device of the user, of a fitness videofrom the pluralities of fitness videos, a representation of the selectedfitness video is stored in a playlist record of a database accessiblevia the processor, to produce the customized interactive video playlist,the curated interactive video playlist including a plurality of selectedfitness videos. At 3108, the method 3100 includes receiving anindication as to whether the user has completed making their selectionsfor the customized interactive video playlist. For example, a prompt of“Complete?” may be presented to the user via the GUI, in which case, ifthe user selects “No,” the method 3100 loops back to the display of thecontent categories at 3104 and proceeds as discussed above. Conversely,in other embodiments not shown, a prompt of “Make Further Selection(s)?”may be presented to the user via the GUI, in which case if the userselects “Yes,” the method loops back to the display of the contentcategories, and if the user selects “No,” the method terminates orproceeds to a step similar to step 3110 of FIG. 31 , discussed below.

Returning to FIG. 31 , if at 3108 an indication is received that theuser has completed making their selections for the customizedinteractive video playlist, the method 3100 terminates, or optionallyproceeds, at 3110 and in response to a command received via the GUI toplay the customized interactive video playlist, with: (1) causing afirst playback, via the first compute device (e.g., a smart mirror) ofthe user and during a first time period, of a first selected fitnessvideo from the plurality of selected fitness videos of the customizedinteractive video playlist; and (2) causing a second playback, via asecond compute device (e.g., a smart/mobile device) of the userdifferent from the first compute device of the user, and during a secondtime period different from the first time period, of a second selectedfitness video from the plurality of selected fitness videos of thecustomized interactive video playlist. The method 3100 optionally alsoincludes determining a location of the user in response to the commandto play the customized interactive video playlist, and selecting thefirst compute device for the first playback based on the location of theuser.

In some embodiments, the second selected fitness video is displayed viathe first compute device concurrently with the second playback via thesecond compute device.

In some embodiments, the method 3100 also includes receiving, from thefirst compute device of the user, an indication of a selection of afilter; and modifying, based on the filter, the representation of theplurality of content categories.

In some embodiments, the user is a first user, and the method 3100 alsoincludes receiving, from the first user and via the GUI, a command toshare the customized interactive video playlist with a second userassociated with a third compute device, and causing display, in responseto the command and via a compute device of the second user, of anotification that the customized interactive video playlist of the firstuser is accessible via the third compute device.

In some embodiments, the method 3100 also includes receiving, from theuser and via the GUI, one of: a command to remove a selected fitnessvideo from the plurality of selected fitness videos, or a command to addanother fitness video to the plurality of selected fitness videos, andmodifying the playlist record, in response to the command, to reflect amodified plurality of selected fitness videos.

In some embodiments, the method 3100 also includes receiving, from theuser and via the GUI, a command to reorder the selected fitness videosfrom the plurality of selected fitness videos, and modifying theplaylist record, in response to the command, to reflect an updated orderof the plurality of selected fitness videos.

In some embodiments, the first time period is contiguous with the secondtime period.

In some embodiments, the method 3100 also includes detecting a change inlocation of the user during the first playback. In response to detectingthe change in location of the user, the method 3100 also includes atleast one of: stopping the first playback via the first compute deviceof the user, or continuing the first playback via the second computedevice of the user for a remainder of the first time period.

In some embodiments, the GUI includes functionality (e.g., objects withwhich the user can interact) for searching and/or filtering the contentcategories and/or the fitness videos. Filtering can be based on aspecified duration (or range thereof), difficulty rating (or rangethereof), instructor/trainer name, trainer type, workout type, focusarea (e.g., upper body, running, deep breathing, etc.), and/orenvironment (e.g., indoor or outdoor). As discussed above, the contentcategories and the fitness videos can have associated environments(e.g., indoor or outdoor). In some embodiments, a user can select nomore than a predefined maximum number of fitness videos for a givencustomized interactive video playlist.

Class Interface

Once the user selects the fitness class and the class begins, the GUImay be configured to display various information and/or controls to theuser. As described above, the smart mirror 100 is used primarily to showvideo content via the display panel 120 and audio outputs via thespeakers 152 and 154. In some cases, the display panel 120 may also beconfigured to show GUI-related features that are more informationalrather than a control input. The portion of the GUI with control inputsmay instead be shown on the user's smart device. Therefore, the GUI, asdescribed herein, may be split between the smart mirror 100 and anotherdevice. Of course, the smart mirror 100 may be configured to be usedwithout the aid of another device as described above. In such cases, theinformation and control inputs provided by the GUI may be displayedentirely on the display panel 120.

FIGS. 32A-32C show an exemplary GUI on the user's smart phone used, inpart, to control the fitness class and to provide user input. FIG. 30Ashows the GUI on the user's smart phone may give the user the ability toplay, pause, rewind, fast forward, or skip certain portions of theworkout. The GUI may also include controls for the user to adjust thevolume of the output sound (e.g., from the smart mirror 100 or aBluetooth speaker) and to rate the exercise and/or fitness class. TheGUI on the user's smart phone may also display the current exercise, theskill level, the instructor name, and the duration of the routine. FIG.32B shows an exemplary GUI of a workout log of the user. This workoutlog may be accessed before, during, or after the workout. As shown, theworkout log may contain various information including the total caloriesburned, the total number of workouts, the total duration the user wasexercising, the user's progress in meeting a fitness goal (e.g., aweekly goal), and the number of workouts completed relative to thenumber of workouts to meet the weekly goal. FIG. 32C shows an exemplaryGUI of a survey for the user to provide feedback on the instructorand/or the fitness class.

As described above, the smart mirror 100 may also show variousGUI-related features during the workout. For example, FIG. 33A shows anoverview of the fitness class prior to the start of the workoutincluding video of the instructor, instructor name, skill level,duration, name of the class, brief summary of the class, and timeline.The timeline may be used to indicate the pace and/or intensity level ofclass. For instance, the timeline in FIG. 33A indicates four periods(each represented by two parallel bars) corresponding to a higherintensity workout. In some cases, the timeline may be displayedthroughout the workout on the smart mirror 100 and/or the user's smartdevice. The timeline may also be interactive (on either the smart mirror100 via a touch command or the user's smart device) to allow the user toselect and jump to different sections of the class.

Once the class begins, various GUI-related features may be shown toindicate the status and progress of the user's workout in conjunctionwith the video content. FIG. 33B shows one exemplary GUI on the smartmirror 100 during a workout. As shown, the GUI may include a timerindicating the amount of time passed and a progress bar (e.g.,represented as a circle around the timer) to show the user's progressfor a particular exercise. Depending on the exercise, a counter mayinstead be shown to represent the number of repetitions for theexercise. The GUI also shows the name of the exercise and the number ofusers actively participating in the same fitness class. The GUI may alsoshow the next exercise in the workout. If the user is wearing abiometric sensor, such as a heart rate (HR) monitor, the GUI on thesmart mirror 100 may also display real-time biometric data, such as theuser's heart rate. Additional information derived from the biometricdata may also be displayed, such as the number calories burned based onthe user's heart rate. In some cases, the video content may be augmentedby additional notes from the instructor. For example, FIG. 33B shows theinstructor performing the exercise and a miniaturized representation ofthe instructor performing the same exercise using an alternative formand/or movement. The alternative form may present a more challengingversion of the exercise to the user.

In some cases, the smart mirror 100 may actively monitor the user'sbiometric data to provide additional guidance to the user. For example,FIG. 33C shows the smart mirror 100 may display a message indicating theuser's heart rate has dropped below a desired threshold. Thus, the smartmirror 100 may indicate to the user to increase their intensity in orderto increase their heart rate. In another example. FIG. 33D shows thesmart mirror 100 may inform the user the exercise is modified toaccommodate a user's injury and/or to reduce the risk of injury. Inother cases, the GUI may provide a message containing other informationderived from the biometric data including, but not limited to the user'sheart rate relative to a target heart rate zone, the number of stepsrelative to a target number of steps, the user's perspiration rate, theuser's breathing rate, and the extent to which the user is able toproperly emulate the form and movement of a particular exercise (e.g.,qualified using feedback such as ‘poor’, ‘good’, ‘great’).

The smart mirror 100 may also show avatars corresponding to at least aportion of the other users attending the same fitness class. The avatarmay be an image of each user, an icon, or a graphic. For example, thesmart mirror 100 may acquire an image of the user to display as anavatar during the initial creation of the user's account. The image maybe modified or replaced thereafter. FIGS. 33E-33K show several exemplaryrepresentations of other users' avatars, names, and locations.Additional information from other users may also be shown including, butnot limited to the other users' scores during the workout, skilllevel(s), and biometric data (e.g., heart rate, heart rate relative to atarget heart rate zone, step count).

Other information displayed on the smart mirror 100 may include theuser's heart rate relative to a target heart rate zone. FIGS. 33F-33Kshow a horizontal heart rate range bar 3300 representing a heart raterange. The user's heart rate is shown on the bar in combination with atarget heart rate zone 3302 on the heart rate range bar 3300. Thisinformation may visually indicate whether the user is exerting theappropriate level of intensity during the workout. This heart rateinformation may also be used to compute a score for the user to indicatetheir performance during the workout. For example, FIGS. 33I-33K show ascore bar 3310 indicating the real-time score 3314 of the user relativeto a target score 3312, such as a predetermined score, another user'sscore, the user's previous score when performing the same exerciseand/or workout. The user's score 3314 may change as the exercise orworkout progresses based on the number of points awarded for satisfyingcertain criteria, as discussed below. In some cases, a leaderboard maybe displayed during or after the workout. The leaderboard may rank theusers based on their respective scores.

Once the workout is complete, the GUI may display a summary of theworkout and the weekly exercise log described above. For example, FIG.33L shows the workout log on the smart mirror 100 as previouslydescribed with reference to the GUI shown on the user's smart phone inFIG. 32B. FIG. 33M shows a summary of the workout. As shown, the GUI mayprovide the user's score, the duration the user's heart rate was withinthe target heart rate zone, the user's average heart rate, the number ofcalories burned, and a chart showing the change in the user's heart rateduring the workout. The GUI in FIG. 33M may also show the days of theweek the user met their daily exercise goals.

In some cases, the user may receive achievements during or after theworkout. These achievements may be awarded when the user satisfiescertain criteria, as described below. The achievements may also beshared with other users in the fitness class immediately after receiptor after the workout is complete. Similarly, the user may see anotheruser's achievements during or after the workout. The display ofachievements may be toggled on or off in the settings depending on userpreferences.

As described above, the smart mirror 100 may display a miniaturizedrepresentation of the instructor. In some cases, the miniaturizedrepresentation of the instructor may be overlaid with a correspondingrepresentation of the user captured using the camera 130. Eachrepresentation may be semi-transparent to enable the user to comparetheir form and movement to the instructor. In some cases, therepresentation of the instructor or the representation of the user maybe displayed as a stick model to provide greater visual clarity whencomparing the two representations with respect to one another. In someapplications, the GUI may enable the user to download representations ofother users and/or instructors for guidance when performing a particularexercise. Furthermore, the smart mirror 100 and the GUI may enable theuser to display multiple representations for comparison. For example,representations of each user in a fitness class may be displayed on thesmart mirror 100.

The various GUI-related features shown on the smart mirror 100 may betoggled on or off via the settings GUI described above. The layout,color, and size of these GUI-features may also be customizable. Forexample, the user may wish to show as little information as possible(e.g., only the timer, exercise type, and the progress bar) such thatthe video content and the user's reflection appear less cluttered and/orless obstructed during the workout.

The smart mirror 100 may also be configured to dynamically adjust andadapt content in real-time during a workout. Such adjustments may dependon a combination of user preferences and instructor recommendations. Forexample, the user may specify preferences on various types of fitnessroutines (e.g., cardio workouts, strength training, stretching, upperbody workouts, core workouts, lower body workouts, current injuries, andpast injuries). Based on these preferences, the instructor may recommenda particular set of fitness routines and past user ratings of thesefitness routines.

The recommended fitness routines may be then be streamed to the user andupdated in real-time based on user feedback (e.g., preferences onintensity level of exercise, preferences on exercising certain areas ofthe body). Biometric data (e.g., heart rate, breathing rate) may also bemonitored to adjust the intensity of the fitness routines. For example,the instructor (or the user) may specify a target range for the user'sheart rate during the workout. If the user's heart rate is out of thetarget range, the smart mirror 100 may first warn the user and thenadjust the content to either bring the user's heart rate into the targetrange or modify the target range if the fitness routine is no longerpreferred. Dynamic adaptation of content may be achieved by analyzinguser feedback or biometrics data using a processor with a decision tree,neural network, or another machine learning method.

Sharing Social Media Using a Smart Mirror

The smart mirror 100 may also have a social networking component thatallows the user to connect to another person (e.g., another user, aninstructor) and a group/community of people. The user may connect toanother person using a search feature integrated into the GUI. Thesearch feature may enable the user to search for another person based onvarious attributes including, but not limited to their legal name,username, age, demographic, location, fitness interests, fitness goals,skill level, weight, height, gender, current injuries, injury history,and type of workout music. In one example, once the user selects anotherperson with which they want to connect to, a request may be send to theother person for subsequent confirmation/approval. If the other personapproves, the user may be connected to the other person and may see theperson on a list of contacts. In some cases, the user may configuretheir account to automatically accept requests from other users. Thismay be an option selected under the settings portion of the GUI.

The GUI may also provide other methods for the user to connect toanother person. For example, the user may connect to other users basedon their attendance of a particular fitness class. For example, the usermay register for a fitness class. Before the class begins, the user maybe able to view other users attending the same class. The GUI may enablethe user to select another user and send a connection request. Aconnection request may also be sent during or after the fitness class.The GUI may also recommend people to connect with based on theattributes described above (e.g., the attributes may be combined to forma representation of the user) as well as other attributes including butnot limited to a similar workout history, similar workout performance orprogression, similar scores on a leaderboard, geographic proximity(e.g., based on a user's defined location, an Internet Protocol (IP)address), and/or shared connections with other users (e.g., 1^(st)degree, 2^(nd) degree, 3^(rd) degree connections). The GUI may alsoenable the user to browse through a leaderboard and select another usershown on the leaderboard. Once the other user is selected, a connectionrequest may again be sent.

The GUI may provide a list of contacts to the user, which may be groupedand/or organized according to the user's preferences. For example, thelist of contacts may be arranged based on the user's immediate family,friends, coworkers, list of instructors, people sharing similarinterests, demographic, and so on. The list of contacts may also includea filter that enables the user to select and display one or more groups.

Additionally, the GUI may enable the user to join another group and/orcommunity of users. For example, a user may create a group for usersinterested in cycling. Another group may be created for users interestedin other interests such as boxing, running, weightlifting, and/or yoga.The group may be set to be a public group where any user may see thegroup via the GUI and may send a connection request to join the group.The group may also be set to be a private group that may not beavailable via the GUI and only allows users to join by an invitation.The group may be created by a user or an instructor. Other users mayjoin the group upon approval by the creator or another user withappropriate administrative rights. In some cases, the group may beconfigured to accept all connection request automatically.

The group may be used, in part, to provide users a forum to communicateand share information with one another. For example, a user may providerecommendations for various fitness classes to other users. In anotherexample, an instructor may send a message on a new or upcoming fitnessclass they are teaching. In another example, a user may send a messageindicating they are about to begin a fitness class. The message mayprovide an interactive element that enables other users to join thefitness class directly, thus skipping the various navigational screenspreviously described to select a fitness class. Additionally, a user maypost a message containing audio and/or video acquired by the smartmirror 100 to share with other users in the group. For example, a usermay post a video showing their progress in losing weight. In anotherexample, the user may show video of the instructor and/or other usersparticipating in the fitness class. A user in the group may alsogenerate a group-specific leaderboard to track and rank various membersof the group.

In some cases, the GUI may also enable at least a portion of the userswithin a group to join a particular fitness class together. For example,the users within a group may form a subgroup where a designated leaderof the subgroup may then select a fitness class, using similar processesdescribed above, thus causing the other members of the subgroup toautomatically join the same fitness class. In some cases, two or moreusers of the group may join the same fitness class via the same smartmirror 100, i.e., at the same physical location. The mirror 100 may beable to recognize and distinguish different users based on video and/orimagery acquired via the camera 130 and analyzed as described above foruser recognition and tracking, based on voice input acquired via themicrophone 160 and analyzed as described above for voice recognition,via each user expressly identifying themselves (e.g., by logging intotheir profile via the same mirror 100), and/or the like.

The GUI may also provide live audio and/or video chat between userswithin the same group and/or subgroup. For example, when a subgroup ofusers joins a fitness class together, the GUI may allow the users of thesubgroup to communicate with one another during the workout. This mayinclude audio and video (e.g., a frame showing the other user's head,face, or body) streams from other users overlaid onto the exercisedisplayed on the display panel 120. It should be appreciated thesubgroup may also be formed based on the user's selection of one or morecontacts on their list of contacts (as opposed to being restricted tousers within a group).

The GUI may also enable the user to create a social network blog toinclude various user-generated content and content automaticallygenerated by the smart mirror 100. User-generated content may include,but is not limited to ratings or reviews of various fitness classes,audio messages generated by the user, video messages generated by theuser, interactive elements linking to one or more fitness classes.Automatically generated content may include, but is not limited toupdates to the user's score on a leaderboard, achievements by the user(e.g., completing a fitness goal), and attendance to a fitness class.The content shown on the user's social network blog may be designated asbeing public (e.g., any user may view the content) or private (e.g.,only select group of users designated by the user may view the content).

The GUI may also enable the user to “follow” another user. In thisdescription, “follow” is defined as the user being able to view anotheruser's information that is publicly accessible including, but notlimited to the other user's social network blog, workout history, andscore(s) on various leaderboards. The option of following another usermay be presented as another option when the user is assessing whetherthey want to connect to other user. Therefore, the GUI may enable theuser to follow another user using similar methods described above in thecontext of connecting to other users.

As described above, the smart mirror 100 may be used to share varioususer information with other users including, but not limited to theuser's profile, social network blog, achievements, biometrics, activityselection, a video recording, and feedback. For example, user A mayshare their progress on a fitness routine to user B, who can thenprovide feedback (e.g., an emoji, an audio message, a video message,etc.) to user A. In another example, the GUI on the smart mirror 100 oron the user's smart phone may prompt the user to take a selfie image,either with the smart mirror's camera 130 or the smart phone, followingthe completion of a workout as shown in FIG. 34A. The camera 130 and thedisplay panel 120 may then be configured to show a live video of theuser to create a desired pose. An image of the user may then be acquired(e.g., after a preset period of time or based on an input command by theuser) as shown in FIG. 34B. The image of the user may then be sharedwith other users (e.g., in the same fitness class, in the user's list ofcontacts, in the user's group) as shown in FIG. 34C. The user may alsoview other user's images.

In another example, the camera 130 may record a video of user A during aworkout, which may then be shared with user B. As user B performs thesame workout, the video of user A may be overlaid onto the display panel120 with a live video of user B. The respective video recording of userA and the live video of user B may be semi-transparent such that user Bmay compare their form and/or movement to user A during the workout. Insome cases, the smart mirror 100 may enable the user to download videorecordings of other users and/or instructors to display onto theirrespective smart mirror 100 whilst performing the workout. In thismanner, the smart mirror 100 may support a “ghost mode” that allowsusers to compare their performance during a workout to other people. Forexample, the user may download a video recording of multiple expertsperforming the same workout. The user may then display the videorecording of each expert (individually or in combination) to evaluatethe user's progression in the workout.

The smart mirror 100 may also support achievements. Achievements aredefined as rewards given to the user upon satisfying certain criteriafor the achievement. The rewards may include, but is not limited to abadge (e.g., a visual graphic the user can share with others), a numberof points contributing to a user's leaderboard position, and access or adiscount to premium content. Achievements may be given for variousreasons including, but not limited to exercising several days in a row,meeting an exercise goal, completing certain types of workouts and/orexercises, completing a certain number of workouts and/or exercises, andadvancing to more difficult skill levels. A summary of the achievementsmay be shown on the GUI to the user.

Information may be shared between users in several ways. In one example,smart mirrors may share data directly with one another via local, directconnections when the smart mirrors are connected to the same network(e.g., multiple smart mirrors at a gym, hotel, or home). In anotherexample, information may be shared via the application installed on eachuser's smart device through a remote network connection (e.g., awireless network, wireless internet, a telecommunication network).Information may also be stored remotely on a server, which may then bedistributed between users (e.g., with or without authorization of theuser depending on the settings of the smart mirror 100 and/or the user'saccount).

Leaderboards, Heart Rate, and Transitions Between Target Heart RateZones

As described above, the GUI may also include one or more leaderboards torank users according to a user's score. For example, a leaderboard maybe generated for each fitness class to rank the participant'sperformance during and after the class. In another example, one or moreglobal leaderboards may be used to rank many, if not all, users based onthe type of exercise or a combination of different exercises.

The leaderboard may be used, in part, to provide a competitiveenvironment when using the smart mirror 100. Users may use their scoresto evaluate their progress at a workout by comparing their currentscores to their own previous scores recorded by the smart mirror 100.Additionally, one user may compete against one or more other users(e.g., globally, within the same group, within the same subgroup) toattain higher scores in a live setting (e.g., users within the samefitness class) or with respect to previous scores recorded by the otheruser(s). The user may configure the leaderboard to show other usersexhibiting similar attributes including, but not limited to demographic,gender, age, height, weight, injury, location, skill level, and fitnessgoal. These attributes may be dependent on the user (e.g., theleaderboard includes users similar to the user) or may be entirelyindependent (e.g., the leaderboard includes users dependent solely onthe criteria specified by the user).

The user's score on a leaderboard may be calculated in various ways. Inone example, the user's score may be determined based on how quickly theuser's hear rate (HR) moves between different target hear rate zones. Atarget hear rate zone may be defined as some percentage range of auser's peak heart rate. Various heart rate zones may thus be definedincluding, but not limited to a rest zone, a fitness zone, an aerobiczone, an anaerobic zone, a fat burn zone, and a cardio zone. There maybe a different target heart rate zone for each section of an exercisevideo (e.g., a warm-up heart rate zone to start, alternating rest andanaerobic heart rate zones during intervals, and a warm-down heart ratezone to end). Depending on the definition of these zones, some zones mayoverlap in the range of the percentage of the user's peak heart rate.

A HR accuracy percentage may be used to determine the number of pointsgiven to the user during a workout. The HR accuracy percentagerepresents how quickly the user's hear rate (HR) moves between thedifferent target hear rate zones. A higher score may correspond to theHR changing instantaneously. However, this situation may be unrealisticand/or may result in an exceedingly challenging condition imposed on theuser resulting in biased scores. In some cases, the score may instead becomputed by comparing the user's heart rate to a HR curve representingthe transitions between different HR zones. The HR curve may include asmoothing effect between each HR zone transition to provide a morerealistically attainable HR accuracy percentage. The smoothing effectmay depend on various metrics including, but not limited to the user'shistorical HR data, the HR data of a community of user's, the userpreferences, the user demographic, the exercise and/or workoutstructure.

In one use case, a single smart mirror 100 may support multiple usersperforming a workout. During the workout, the scores for each user maybe displayed on the display panel 120. In this manner, the users maycompare their scores against one another during the workout, which mayprovide an incentive for the users to achieve a greater workoutperformance compared to the case where each easer exercises on their ownseparately.

In another example, the user's score may be computed based on otherfactors of a user's workout performance (which may depend on the type ofbiometric data collected) including, but not limited to the user's stepcount, number of repetitions for each exercise, distance traveled (e.g.,if running or walking), calories burned, the period of time the user'sHR is in a particular HR zone, the user's form and/or movement whenperforming a particular exercise routine. In some cases, the user'sscore may be modified based on conditions that render a particularexercise more difficult or easier including, but not limited to theweight being lifted, the incline angle of a treadmill, the resistancesetting of an exercise bike, and/or the use of supporting blocks duringyoga. These modifications may be in the form of a multiplier applied tothe user's score to rewards and penalize the user based on the relativedifficulty of the conditions of the exercise.

The user's score may be a combination of one or more of the factorsdescribed above. In some cases, the user's score may further includeweights applied to particular exercises to intentionally bias the user'sscore. For example, more points may be awarded to the user forcardio-related exercises compared to strength-related exercises tocorrespond to the user's fitness goal of increasing stamina. The user'sscore may also be computed where strength-related exercises are givenmore points than cardio-related exercises to provide the user a scorerepresentative of their fitness goal of increasing their strength.Multiple scores may thus be generated based on the user's biometric dataand workout history to convey to the user a quantitative metricrepresenting their progress for various fitness attributes.

Smart Mirror Background Processes

In addition to the GUI providing users the ability to access and controlthe operation of the smart mirror 100 and/or the content shown on thedisplay panel 120 of the smart mirror 100, various background processesmay also provide user's additional information when not actively usingthe smart mirror 100. A background process may be a process thatperforms certain functions that, depending on the output of thefunction, results in the generation and transmission of a message to theuser with a representation of the output. The background process may besubstantially automated. This allows, for instance, a user to run otherapplications on their smart device while the background process isrunning. These background processes may run locally on a user's smartdevice (e.g., a smart phone) or remotely on a device (e.g., a server)with communication access to the smart mirror 100 and/or the user'ssmart device. A background process may be controlled, in part, via anapplication installed on the user's smart device, the smart mirror 100,and/or a remote device.

The background process may be configured to send various types ofmessages (also treated as notifications) to the user including, but notlimited to a text message, an email, a voicemail, or a post on a user'ssocial network account. The frequency of the messages may vary dependingon the content of the message. For example, a message containing areminder for the user to exercise may be sent every other hour of eachday. In another example, a message from another user or an instructormay be sent to the user immediately after submission or may be storedand aggregated with other messages to be sent as a digest (e.g., anemail digest containing multiple messages). In yet another example,recommendations for fitness classes may be sent to a user on a weekly ormonthly basis. Generally, the message may be sent to the user at variousfrequencies (e.g., ranging between immediately after the message isgenerated to months or even years) depending, in part, on userpreferences. The background process may also be configured to reducepower consumption, thus prolonging a device that operates using abattery (e.g., a user's smartphone or tablet).

In some cases, the message sent by a background process may include aninteractive element (e.g., a web link, a button) for a user to provideinput. For example, a message containing a recommendation for a classmay include one or more options a user can select (e.g., ‘register forclass’, ‘not interested’). If the user selects the option to registerfor the class, a web page or an application may open to a screen thatallows the user to review the class and finalize registration. Inanother example, a message containing a status update of another user(e.g., a user's friend) may provide options for the user to send anemoji to indicate their response. For instance, if the user's friendsuccessfully meets one of their fitness goals, the user may send asmiley face or a thumbs up. In yet another example, a message mayindicate a user's friend is attending a particular fitness class and mayinclude an option to enable the user to join the fitness class withoutnavigating through other screens of the GUI.

Generally, various content may be included in a message generated by abackground process. For example, a background process may monitor theduration of time since a user previously used the smart mirror 100.After exceeding a predefined threshold (e.g., an hour, a day, a week), amessage may be generated to remind the user to exercise. The message mayalso contain a user's progress towards meeting one or more fitnessgoals. The smart mirror 100 may also send status updates to the userincluding, but not limited to when a new software update is availablefor installation, connectivity issues between a user's smart device andthe smart mirror 100 or the smart mirror 100 and a network, anunauthorized login into a user's account, and when another user is usingthe smart mirror 100 (e.g., a family member).

A background process may also relay messages from an instructor (oranother user) sent directly to the user or posted on the user's socialnetwork blog. The message may include, but is not limited to updates onthe status of a fitness class (e.g., cancellation, change of schedule),feedback from an instructor following a particular fitness class,feedback from a personal trainer providing guidance to the user on aregular basis, recommendations for a fitness class, messages posted to acommunity forum, a digest of messages from other users, and/or requestsfor connection on a user's social network. A background process may alsomonitor updates of other user's (e.g., a friend, a person followed bythe user) and send messages in an automated manner when certain updatesoccur. The message may contain various content including, but notlimited to the other user completing one or more fitness goals, theother user registering and/or participating in a new fitness class, theother user liking or providing a high rating to a particular fitnessclass, a change in the other user's position on a leaderboard, updatedpictures of the other user (e.g., after completing a fitness class), andbirthday wishes.

Generating Content for a Smart Mirror

The smart mirror 100 is configured to provide a flexible platform thatallows video content generated by instructors (or other users) to bereadily disseminated to a user. The various networking capabilities ofthe smart mirror 100 described above may enable video content to be livestreamed directly to a user's smart mirror 100 or stored on acentralized distribution platform (e.g., a remote server, a cloudservice) for subsequent consumption by the user. In some cases, thevideo content may be distributed through use of a software applicationconnected to the smart mirror 100 (e.g., a first party app from themanufacturer of the smart mirror 100 or a third party app from astreaming service compatible with the smart mirror 100).

Video content may be generated in various settings, such as a fitnessstudio or a user's home. In one example, an instructor may generatevideo content of a fitness class using a studio. The studio may use astandard, one-camera setup or a more sophisticated setup (e.g., multiplecameras to acquire video at multiple viewing angles) to acquire video ofa fitness class. A producer may be used to monitor and/or control theaudio-visual equipment used to stream the class. The fitness class maybe defined as a single continuous shot from beginning to end of theinstructor performing the workout.

The studio may be setup to stream one class at a time. The video/audioof the class is captured and transcoded via a hardware encoder (e.g.,Epiphan Pearl). The class may be live streamed by uploading the videocontent to a low-latency cloud server (e.g., a Wowza cloud server) wherethe content is transcoded and broadcast to an HLS stream (private orpublic). The content may also be recorded at a high resolution forsubsequent re-use or playback (e.g., as on-demand content).

The studio may include a room with a trainer wall where video isrecorded. The room may have dimensions of approximately 18 feet wide, 30feet long, and 12.3 feet high. The camera recording the video may bepositioned approximately 15 feet from the trainer wall. The camera maybe configured to have a field of view of the trainer area withdimensions approximately 8 feet wide, 9 feet deep, and 9 feet high,corresponding to a recorded area. Other studio arrangements withdifferent room dimensions and camera placement may be used depending onthe desired viewing and field of view of the instructor.

The recorded area may be configured to be a ‘black box’, where the wallsof the recorded area are covered in a dark colored material (e.g., amatte black paint) and the floor is covered with a high grip, darkcolored material (e.g., a black rubber floor with little texture). Therecorded area may be illuminated by side lighting devices disposed atvarious heights and assembled to form a small semi-circle on either sideof the instructor. Overhead lighting may result in reflections and thescattering of light off the floor. In order to maintain a ‘black void’configuration, the presence of overhead lighting should be reduced. Thelighting systems may also be configured to emit light with variouscolors and lighting effects (e.g., highlights, wash effects).

In other settings, the recorded area may be configured to have surfaceswith various colors, patterns, and/or surface finishes including, butnot limited to one or more green screens for picture in picture videos,an all-white backdrop, a black Plexiglas floor, and a grey concretefloor. The studio may also be configured to have one or more cameras torecord video at various angles. For example, two cameras with a B-rollfor a master video or a picture in picture configuration may be used.Two cameras that record video at various angle changes may also be used.

The camera may be configured to record video at various resolutions forlive streaming and/or recording (e.g., 1080p, 1080i, 2K, ultra-highdefinition (UHD), 4K, 8K). The video recorded by the camera may be invarious formats including, but not limited to H.264 and MPEG formats.The video may be recorded at various framerates (e.g., 24 frames persecond). For example, a single fixed camera (Sony FSSK) may be mountedon its side to record video with a portrait view. A look up table (LUT)may be applied to the video feed before being passed to the encoder inorder to reduce the amount of color correction processing during postprocessing of the recorded video. Other various settings on the cameramay be adjusted including, but not limited to International StandardsOrganization (ISO) settings (e.g., ISO 3200), and white balance (WB)settings (e.g., WB 6300K).

For sound recording, one or more microphones may be used. For example,the studio may include two highly directional Audix Miniature shotgunmics mounted on a 50″ gooseneck boom supported by a simplefloor-standing microphone stand, in this manner, environmental noise,such as traffic and external room noise, may be reduced without havingto attach a microphone directly to the instructor. A plurality ofmicrophones may be used to facilitate sound recording when theinstructor changes position. For example, one microphone may beconfigured for instructors in a standing position and another microphonemay be configured for instructors in a crouching/prone position. Anautomixer may be coupled to the microphones to ensure the sound recordedby multiple microphones is properly balanced. Hands-free microphones,such as a lavalier microphone, may also be used for sound recording andto reduce environmental noise during recording. Audio may be recorded atvarious qualities (e.g., AAC 48 kHz stereo 320 kpbs).

The quality of the live stream and the recorded video may besubstantially similar or intentionally different. For example, thestudio may be configured to stream video at a 1080 by 1920 pixelresolution, 24 frames per second, and 23 megabits per second for thehighest bandwidth configuration. Adaptive streaming may also be appliedwhen streaming video to adapt to variabilities in a user's networkbandwidth. The smart mirror 100 may adjust video quality by detectingthe user's bandwidth in real-time.

The fitness class may be recorded in various configurations. Forexample, the fitness class may include only the instructor or theinstructor with one or more students to depending on which configurationprovides improved user immersion and/or a better approach to teaching anexercise technique. This may depend, in part, on user preferences aswell. The video content may be recorded at variable framerates (e.g., ahigh frame rate per second recording may facilitate slow motionplayback). The video content may also be recorded with up to a 360degree format to allow users to change views of the fitness class duringa workout. This effect may also be achieved through use of multiplecameras as well. Furthermore, video content recorded in the studio maybe annotated with exercise specific notes and/or lines drawn on theinstructor to provide greater clarity to the form and movement of aparticular exercise. In some cases, a talking head may also be includedto provide users with narration during the class.

Instructor Interface for Smart Mirror Classes

An instructor user interface may also be provided to assist theinstructor in managing the fitness class in real-time. The instructoruser interface may be shown on the display of various devices including,but not limited to a computer, a smart phone, a tablet, a smart watch,and a television. Furthermore, the instructor user interface may beaccessed using a dedicated software application installed locally on theinstructor's device and/or via a web application using a web browser. Insome cases, the instructor may also use the smart mirror 100 to recordvideo content using the camera 130 and the microphone 160 and/or tomanage the fitness class using the smart mirror 100 directly or a smartdevice coupled to the smart mirror 100.

The instructor user interface may include various information on thefitness class and the users attending the class including, but notlimited to a class itinerary, a class timeline, user information of eachuser, user scores, a leaderboard of users, and user feedback on eachexercise and/or the overall class. The instructor may use the instructoruser interface to select and modify a class plan or timeline before orduring the fitness class. The timeline of the class may be adjusteddynamically in real-time based on the instructor's progress in executingthe class plan. For example, the instructor may decide to shorten orremove a particular exercise in favor of prolonging another exercise. Inanother example, user feedback during the class may indicate to theinstructor the users are getting tired more quickly than anticipated,thus the instructor may change the class plan in favor of lessphysically intense routines.

The instructor user interface may devote one section of the instructor'sdevice display to show the class plan and the class timeline. Anothersection of the instructor user interface may show an instructordashboard with user information of each user. The user information mayinclude, but is not limited to each user's biometric data, user feedback(e.g., emoji's, ratings for each exercise), age, weight, gender, height,injury history, previous fitness classes attended, desired goals for theworkout (e.g., losing weight, building muscle). The instructor dashboardmay also include a summary of the user's attending the class, which maybe updated in real-time. The summary may also include a representativescore of each user as the fitness class progresses. In this manner, theinstructor may determine users who are exceeding or falling behind thepace of the exercise.

The instructor dashboard may also enable the instructor to provideindividual messages and/or feedback to each user in various formatsincluding, but not limited to emojis (e.g., a thumbs up, a thumbs down),audio directed specifically to a particular user or group of users, andvideo directed specifically to a particular user or group of users. Theinstructor may also be able to provide instructions or displays showinghow to perform modified versions of exercises for users who are injuredor who have other physicals limitations. For instance, the instructormay display a main exercise and a modified exercise (e.g., “Squat Jumps”and “Squats” as in FIG. 33H) for those who choose not to perform themain exercise. These versions can be displayed to all users or to onlyaffected users.

As described above, the instructor user interface may be shown on thedisplay panel 120 of the smart mirror 100. The camera 130 and themicrophone 160 of the smart mirror 100 may be used to enable theinstructor to provide the aforementioned feedback to a user or group ofusers. Additionally, the speakers 152 and 154 may be used to receiveaudio feedback from a user or group of users during the fitness class.For example, the instructor may ask how the users are feeling after eachexercise and the users may respond by verbally telling the instructorthe pace is too fast, too slow, or satisfactory.

FIGS. 35A-35C show an exemplary instructor user interface accessedthrough a web browser via an instructor's device, such as a computer.FIG. 35A shows the instructor user interface may include a classschedule with a summary of each exercise and the projected period oftime of each exercise. The class schedule may be configured to show thecurrent exercise, which may be updated in real-time as the fitness classprogresses. The workout schedule in FIG. 35A may also provide controlsto the instructor to pause/resume timers for each exercise, to skipparticular exercises, or to go back and repeat particular exercises.FIG. 35C shows another exemplary class schedule with a magnified view ofthe aforementioned controls available to the instructor.

The instructor user interface may also include a summary of the usersstreaming the fitness class via their respective smart mirror 100. Thesummary may include each user's name, location, and current status basedon one or more emojis. The instructor user interface may include filtersto organize and display users according to various parameters including,but not limited to skill level, fitness goals (e.g., build muscle,de-stress, improve health, improve flexibility, improve definition, loseweight, tone up), current and/or past injuries (e.g., ankle, back, knee,neck, postnatal, prenatal, shoulder, wrist), the user's birthday, theduration of time since a user last worked out (e.g., past 7 days, past30 days).

An instructor may also select individual users in the class to showadditional information for each user as shown in FIG. 35B. Various userinformation may be displayed including, but not limited to the user'spicture, the user's name, the user's location, current and pastinjuries, fitness goals, skill level, weight, birthday, frequency ofuser workouts, workouts with a trainer (e.g., specific to name or typeof trainer), total number of workouts, and user ratings for the class.

FIG. 36 shows an example implementation in which a user 3610 is providedcorrective feedback on exercise form by a smart mirror 3600, inaccordance with some embodiments. The corrective feedback includes agraphical prompt or indication (“up” arrow 3610) that the user 3610should raise his/her left arm higher, and a graphical prompt orindication (“down” arrow 3620) that the user 3610 should lower his/herleft arm. In some such implementations, a length of the arrow can beproportional to the amount of recommended adjustment.

FIG. 37 shows an example implementation in which a smart mirror 3700counts and displays a repetition count 3720 for a movement (e.g., squatsor lunges) that a user 3710 is performing, in accordance with someembodiments.

FIG. 38 is a flowchart showing an example method for identifyingprioritized users from a plurality of users, in accordance with someembodiments, As shown in FIG. 38 , the method 3800 includes identifying,at 3802, via a processor and based on at least one criterion, a subsetof prioritized users from a plurality of users. The at least onecriterion can include (but is not limited to) at least one of: amilestone (e.g., a birthday, an anniversary, a new membership, anupdated member status, etc.), an achievement (e.g., an award), ageographic location, a demographic attribute, a social media relatedscore, a social media related statistic (e.g., number offollowers/friends, number of comments on a given post, number of newfollowers/friends within a predefined time period, etc.), a virtualgroup membership, a participation level (e.g., a historicalparticipation level, for example as determined for a predefinedhistorical period of time), or a machine-learning model based prediction(e.g., of user motivation, user confidence, user engagement, userenthusiasm, user energy level, user emotion(s), user physicalperformance, or user participation). For example, the prioritized userscan include users who have met a predetermined level of interaction withtheir associated smart mirror and/or a predetermined level ofparticipation within a smart mirror network or a smart mirror community(e.g., three classes per week for a month of a given class type,trainer, time, etc.), or users who are regular participants (“regulars”)of a particular class (e.g., attending at least a predeterminedthreshold minimum number of times per predefined time period), or userswho are regular attendees of a particular instructor (e.g., attending atleast a threshold minimum number of unique classes instructed by theparticular instructor for a given time period), etc. Each user from theplurality of users is associated with a smart mirror from a plurality ofsmart mirrors forming the smart mirror network, and the plurality ofusers can be referred to as the smart mirror community.

In some embodiments, the at least one criterion is generatedautomatically via one or more servers in communication with the smartmirror network and/or via one or more of the smart mirrors within thesmart mirror network. The at least one criterion can be generatedaccording to a predefined or user-defined schedule (e.g., daily, weekly,monthly), in response to a user request received via a compute device ofthe user, and/or according to predefined or user-defined rules (e.g.,generate criterion in response to detecting that a predefined number ofclasses have been completed within a predefined period of time, generatecriterion when a predefined type of class has been scheduled, etc.). Insome embodiments, the at least one criterion is generated based onand/or in response to one or more of: a detected pattern of useractivity, a detected achievement of a milestone, a detected change inthe absolute performance or the relative performance of the user(s), adetected achievement of a predefined number of milestones, a detectedchange in membership status, or a detected social connection between agiven user and at least one other users from the smart mirror community.

At 3804, the method 3800 includes causing display of a representation ofthe subset of prioritized users during display of a workout video on atleast a subset of smart mirrors from the plurality of smart mirrors,each smart mirror from the plurality of smart mirrors configured suchthat both the workout video and a reflected image of a user associatedwith that smart mirror are viewable via that smart mirror by the userassociated with that smart mirror when the user associated with thatsmart mirror is positioned in front of the smart mirror during displayof the workout video. For example, the workout video can appearsuperimposed on, directly adjacent to (e.g., within a predeterminednumber of pixels of), or adjacent to a portion of the reflected image ofthe user.

The representation of the subset of prioritized users can include apanel or tile rendered at the top, bottom, or either side of thedisplay. Alternatively or in addition, users from the subset ofprioritized users can be rendered within the display as virtual“presences” in the background behind a live or prerecorded instructor.For example, an instructor may appear in the foreground of the displayduring presentation of a workout video, and a live image of a first userfrom the subset of prioritized users can be inserted in the backgroundbehind and slightly to the left of (and optionally partially overlappingwith) the instructor. Similarly, a live image of a second user from thesubset of prioritized users can be inserted in the background behind andslightly to the right of (and optionally partially overlapping with) theinstructor. In this manner, the display can be populated with live orpre-recorded video of users from the subset of prioritized users suchthat the instructor appears to be leading a class with the users fromthe subset of prioritized users present in the room with the instructor.The display of such virtual “presences” may change over time during theworkout video (e.g., in response to a change in prioritization of users,in response to a real-time change in the composition of the subset ofprioritized users, etc.) and/or may only occur during a predefined timeperiod within the workout video. In some such implementations, a studiocamera may “pan” around an instructor during a live class, andadditional virtual views of users from the subset of prioritized usersmay be shown (e.g., such that the users from the subset of prioritizedusers who are virtually “behind” the instructor are more fully in view).

The method 3800 optionally also includes designating each user from thesubset of prioritized users as a regular participant in response to theparticipation levels exceeding the predefined threshold participationlevel. The designation can be an “internal” designation that includesstoring, in memory, a record including an identifier of the user, anindication that the user is a regular participant, and optionally arepresentation of the class for which the user is a regular participant.Alternatively or in addition, the designation of a user as a regularparticipant can include annotating a visual representation of that userwithin a GUI of the display of the smart mirror and/or associatedcompute device(s) to visually show (e.g., graphically or via a textualrepresentation) that the user is a regular participant. The method 3800optionally also includes causing display of a reminder, to each userfrom the subset of prioritized users and an associated smart mirror fromthe plurality of smart mirrors, of an upcoming workout (optionallywithout providing similar notifications to users who are not within thesubset of prioritized users).

The method 3800 optionally also includes modifying a news feed of thesmart mirror network such that a prominence of data associated with thesubset of prioritized users is increased relative to a prominence ofdata associated with the remainder of users from the plurality of users.For example, the prominence of the data associated with the subset ofprioritized users can be increased relative to the prominence of dataassociated with the remainder of users from the plurality of users inone or more (including any combination) of the following ways: the datacan be rendered in a distinctive color, the data can be rendered in adistinctive font, the data can be rendered in a distinctive size, thedata can have a distinctive shape, the data can have a distinctiveassociated graphic, the data can have a distinctive brightness, the datacan have a distinctive character length, the data can be animated, etc.

In some embodiments, one or more users from the subset of prioritizedusers may have a “spotlight” applied to a representation of the one ormore users during the display of the workout video. A “spotlight” canrefer to one or more of: a visual user interface (UI) representation, agraphic image (e.g., a halo effect or illumination), a video, or ananimation (e.g., a strobe or flashing illumination).

In some embodiments, a plurality of smart mirror sub-networks can beidentified for a given smart mirror network and/or a plurality of smartmirror sub-communities can be identified for a given smart mirrorcommunity. In such embodiments, the spotlighting of one or more usersand/or the identification and display of a subset of prioritized userscan be different for each sub-network from the plurality of sub-networksand/or for each smart mirror sub-community from the plurality of smartmirror sub-communities. For example, if there are 100 smart mirrorswithin a smart mirror network, four smart mirror sub-networks (A, B, C,and D), including 25 smart mirrors each, may be identified for thatsmart mirror network. Within smart mirror sub-network A, a first set ofone or more users may be selected for spotlighting and/or a first subsetof prioritized users may be identified and made prominent within thedisplay during display of the workout video. Within smart mirrorsub-network B, a second set of one or more users (different from thefirst set of one or more users) may be selected for spotlighting and/ora second subset of prioritized users (different from the first subset ofprioritized users) may be identified and made prominent within thedisplay during display of the workout video. Within smart mirrorsub-network C, a third set of one or more users (different from thefirst and second sets of one or more users) may be selected forspotlighting and/or a third subset of prioritized users (different fromthe first and second subsets of prioritized users) may be identified andmade prominent within the display during display of the workout video.Within smart mirror sub-network D, a fourth set of one or more users(different from the first, second, and third sets of one or more users)may be selected for spotlighting and/or a fourth subset of prioritizedusers (different from the first, second, and third subsets ofprioritized users) may be identified and made prominent within thedisplay during display of the workout video.

Alternatively or in addition to the multiple sub-networks describedabove, four smart mirror sub-communities (P, Q, R and S) can beidentified for a given smart mirror community of users associated withthe 100 smart mirrors within the example smart mirror network. Each ofthe smart mirror sub-communities P, Q, R and S can include users thatare one or more of: connected to one another (e.g., “friended”) within asocial networking platform, located within a common predefined oruser-defined geographic region, having associated performance metricswithin a predefined or user-defined range, having one or more milestonesmeeting a predefined or user-defined criterion, etc. Within smart mirrorsub-community P, a first set of one or more users may be selected forspotlighting and/or a first subset of prioritized users may beidentified and made prominent within the display during display of theworkout video. Within smart mirror sub-community Q, a second set of oneor more users (different from the first set of one or more users) may beselected for spotlighting and/or a second subset of prioritized users(different from the first subset of prioritized users) may be identifiedand made prominent within the display during display of the workoutvideo. Within smart mirror sub-community R, a third set of one or moreusers (different from the first and second sets of one or more users)may be selected for spotlighting and/or a third subset of prioritizedusers (different from the first and second subsets of prioritized users)may be identified and made prominent within the display during displayof the workout video. Within smart mirror sub-community S, a fourth setof one or more users (different from the first, second, and third setsof one or more users) may be selected for spotlighting and/or a fourthsubset of prioritized users (different from the first, second, and thirdsubsets of prioritized users) may be identified and made prominentwithin the display during display of the workout video.

In some embodiments, an instructor may select (via a GUI of a display ofthe instructor's smart mirror) a user from a subset of prioritizedusers, or from a smart mirror community, or from a smart mirrorsub-community, to virtually “demonstrate” an exercise. In response tothe instructor selection, in some embodiments, a camera (e.g., within asmart mirror or a mobile device) of the selected user may beautomatically activated (i.e., turned on, to capture live video). Inother embodiments, in response to the instructor selection, a prompt maybe generated and presented to the selected user via a GUI of a displayof the smart mirror or mobile device of the selected user, optionallyrequesting the selected user to “accept” an invitation to demonstratethe exercise. In response to the selected user interacting with theprompt to accept the invitation, the camera of the selected user may beturned on, to capture live video. In still other embodiments, inresponse to the instructor selection, the camera of the selected usermay be turned on, to capture live video, without an intervening promptbeing displayed via the GUI of the display of the smart mirror or mobiledevice of the selected user. In some embodiments, the camera of theselected user is deactivated (i.e., turned off) in response to one of:the instructor terminating the demonstration, the user manually turningthe camera off, or a predetermined time duration elapsing.

In some embodiments, a representation of the one or more users from thesubset of prioritized users may be displayed to a trainer (e.g., via amirror or smart device display of the trainer) during the display of theworkout video. Alternatively or in addition, a live video of the one ormore users from the subset of prioritized users may be displayed to thetrainer (e.g., via a mirror or smart device display of the trainer)during the display of the workout video. Alternatively or in addition, atrainer may be prompted (e.g., via a mirror or smart device display ofthe trainer) to provide real-time audio, video and/or text feedback toone or more users from the subset of prioritized users during thedisplay of the workout video.

In some embodiments, the display of the representation of the subset ofprioritized users is performed during a predefined time period that isless than a time duration of the workout video. In other embodiments,the display of the representation of the subset of prioritized users isperformed throughout the display of the workout video.

In some embodiments, the representation of the subset of prioritizedusers includes one of: a graphical image, a video, or an animation.

In some embodiments, the at least one criterion includes the historicalparticipation level, and the identifying the subset of prioritized usersfrom a plurality of users includes comparing the historicalparticipation level with a predefined threshold participation level.

In some embodiments, the at least one criterion includes the historicalparticipation level, the method further comprising causing display, toat least one prioritized user from the subset of prioritized users andvia the associated at least one smart mirror, of a message including anindication that the workout video is a preferred workout video of the atleast one prioritized user from the subset of prioritized users.

In some embodiments, the at least one criterion includes the historicalparticipation level and the display of the workout video is performedduring a time period, the method further comprising causing display, toat least one prioritized user from the subset of prioritized users andvia the associated at least one smart mirror, of a message including anindication that the time period is a preferred time period of the atleast one prioritized user from the subset of prioritized users.

In some embodiments, the at least one criterion includes the historicalparticipation level and the display of the workout video is performedduring a time slot, the method further comprising causing display, to atleast one prioritized user from the subset of prioritized users and viathe associated at least one smart mirror, of a message including anindication that the time slot is a preferred time slot.

In some embodiments, the prioritized users are designated as “front row”users, and a representation of a front row status may be stored inmemory for each prioritized user (e.g., in a record that associates agiven prioritized user with the front row status).

In some embodiments, the prioritized users are designated as “regulars,”and a representation of a “regular” status may be stored in memory foreach prioritized user (e.g., in a record that associates a givenprioritized user with the regular status).

CONCLUSION

All parameters, dimensions, materials, and configurations describedherein are meant to be exemplary and the actual parameters, dimensions,materials, and/or configurations will depend upon the specificapplication or applications for which the inventive teachings is/areused. It is to be understood that the foregoing embodiments arepresented primarily by way of example and that, within the scope of theappended claims and equivalents thereto, inventive embodiments may bepracticed otherwise than as specifically described and claimed.Inventive embodiments of the present disclosure are directed to eachindividual feature, system, article, material, kit, and/or methoddescribed herein.

In addition, any combination of two or more such features, systems,articles, materials, kits, and/or methods, if such features, systems,articles, materials, kits, and/or methods are not mutually inconsistent,is included within the inventive scope of the present disclosure. Othersubstitutions, modifications, changes, and omissions may be made in thedesign, operating conditions and arrangement of respective elements ofthe exemplary implementations without departing from the scope of thepresent disclosure. The use of a numerical range does not precludeequivalents that fall outside the range that fulfill the same function,in the same way, to produce the same result.

The above-described embodiments can be implemented in multiple ways. Forexample, embodiments may be implemented using hardware, software or acombination thereof. When implemented in software, the software code canbe executed on a suitable processor or collection of processors, whetherprovided in a single computer or distributed among multiple computers.

Further, a computer may be embodied in any of a number of forms, such asa rack-mounted computer, a desktop computer, a laptop computer, or atablet computer. Additionally, a computer may be embedded in a devicenot generally regarded as a computer but with suitable processingcapabilities, including a Personal Digital Assistant (PDA), a smartphone or any other suitable portable or fixed electronic device.

Also, a computer may have one or more input and output devices. Thesedevices can be used, among other things, to present a user interface.Examples of output devices that can be used to provide a user interfaceinclude printers or display screens for visual presentation of outputand speakers or other sound generating devices for audible presentationof output. Examples of input devices that can be used for a userinterface include keyboards, and pointing devices, such as mice, touchpads, and digitizing tablets. As another example, a computer may receiveinput information through speech recognition or in other audible format.

Such computers may be interconnected by one or more networks in asuitable form, including a local area network or a wide area network,such as an enterprise network, an intelligent network (IN) or theInternet. Such networks may be based on a suitable technology, mayoperate according to a suitable protocol, and may include wirelessnetworks, wired networks or fiber optic networks.

The various methods or processes outlined herein may be coded assoftware that is executable on one or more processors that employ anyone of a variety of operating systems or platforms. Additionally, suchsoftware may be written using any of a number of suitable programminglanguages and/or programming or scripting tools, and also may becompiled as executable machine language code or intermediate code thatis executed on a framework or virtual machine. Some implementations mayspecifically employ one or more of a particular operating system orplatform and a particular programming language and/or scripting tool tofacilitate execution.

Also, various inventive concepts may be embodied as one or more methods,of which at least one example has been provided. The acts performed aspart of the method may in some instances be ordered in different ways.Accordingly, in some inventive implementations, respective acts of agiven method may be performed in an order different than specificallyillustrated, which may include performing some acts simultaneously (evenif such acts are shown as sequential acts in illustrative embodiments).

All publications, patent applications, patents, and other referencesmentioned herein are incorporated by reference in their entirety.

All definitions, as defined and used herein, should be understood tocontrol over dictionary definitions, definitions in documentsincorporated by reference, and/or ordinary meanings of the definedterms.

The indefinite articles “a” and “an,” as used herein in thespecification and in the claims, unless clearly indicated to thecontrary, should be understood to mean “at least one.”

The phrase “and/or,” as used herein in the specification and in theclaims, should be understood to mean “either or both” of the elements soconjoined, i.e., elements that are conjunctively present in some casesand disjunctively present in other cases. Multiple elements listed with“and/or” should be construed in the same fashion, i.e., “one or more” ofthe elements so conjoined. Other elements may optionally be presentother than the elements specifically identified by the “and/or” clause,whether related or unrelated to those elements specifically identified.Thus, as a non-limiting example, a reference to “A and/or B”, when usedin conjunction with open-ended language such as “comprising” can refer,in one embodiment, to A only (optionally including elements other thanB); in another embodiment, to B only (optionally including elementsother than A); in yet another embodiment, to both A and B (optionallyincluding other elements); etc.

As used herein in the specification and in the claims, “or” should beunderstood to have the same meaning as “and/or” as defined above. Forexample, when separating items in a list, “or” or “and/or” shall beinterpreted as being inclusive, i.e., the inclusion of at least one, butalso including more than one, of a number or list of elements, and,optionally, additional unlisted items. Only terms clearly indicated tothe contrary, such as “only one of” or “exactly one of,” or, when usedin the claims, “consisting of,” will refer to the inclusion of exactlyone element of a number or list of elements. In general, the term “or”as used herein shall only be interpreted as indicating exclusivealternatives (i.e. “one or the other but not both”) when preceded byterms of exclusivity, such as “either,” “one of” “only one of” or“exactly one of” “Consisting essentially of” when used in the claims,shall have its ordinary meaning as used in the field of patent law.

As used herein in the specification and in the claims, the phrase “atleast one,” in reference to a list of one or more elements, should beunderstood to mean at least one element selected from any one or more ofthe elements in the list of elements, but not necessarily including atleast one of each and every element specifically listed within the listof elements and not excluding any combinations of elements in the listof elements. This definition also allows that elements may optionally bepresent other than the elements specifically identified within the listof elements to which the phrase “at least one” refers, whether relatedor unrelated to those elements specifically identified. Thus, as anon-limiting example, “at least one of A and B” (or, equivalently, “atleast one of A or B,” or, equivalently “at least one of A and/or B”) canrefer, in one embodiment, to at least one, optionally including morethan one, A, with no B present (and optionally including elements otherthan B); in another embodiment, to at least one, optionally includingmore than one, B, with no A present (and optionally including elementsother than A); in yet another embodiment, to at least one, optionallyincluding more than one, A, and at least one, optionally including morethan one, B (and optionally including other elements); etc.

In the claims, as well as in the specification above, all transitionalphrases such as “comprising,” “including,” “carrying,” “having,”“containing,” “involving,” “holding,” “composed of,” and the like are tobe understood to be open-ended, i.e., to mean including but not limitedto. Only the transitional phrases “consisting of” and “consistingessentially of” shall be closed or semi-closed transitional phrases,respectively, as set forth in the United States Patent Office Manual ofPatent Examining Procedures, Section 2111.03.

1. A method, comprising: identifying, via a processor and based on atleast one criterion, a subset of prioritized users from a plurality ofusers, the at least one criterion including at least one of: amilestone, an achievement, or a historical participation level, eachuser from the plurality of users associated with a smart mirror from aplurality of smart mirrors forming a smart mirror network; and causingdisplay of a live or pre-recorded video of the subset of prioritizedusers during display of a workout video on at least a subset of smartmirrors from the plurality of smart mirrors, each smart mirror from theplurality of smart mirrors configured such that both the workout videoand a reflected image of a user associated with that smart mirror areviewable via that smart mirror by the user associated with that smartmirror when that user associated with that smart mirror is positioned infront of the smart mirror during display of the workout video.
 2. Themethod of claim 1, wherein the display of the live or pre-recorded videoof the subset of prioritized users is performed during a predefined timeperiod that is less than a time duration of the workout video.
 3. Themethod of claim 1, wherein the display of the live or pre-recorded videoof the subset of prioritized users is performed throughout the displayof the workout video.
 4. The method of claim 1, wherein the at least onecriterion includes the historical participation level, and theidentifying the subset of prioritized users from a plurality of usersincludes comparing the historical participation level with a predefinedthreshold participation level.
 5. The method of claim 4, furthercomprising: designating each user from the subset of prioritized usersas a regular participant in response to the historical participationlevels exceeding the predefined threshold participation level.
 6. Themethod of claim 4, further comprising causing display of a reminder, toeach user from the subset of prioritized users and an associated smartmirror from the plurality of smart mirrors, of an upcoming workout. 7.The method of claim 1, further comprising modifying a news feed of thesmart mirror network such that a prominence of data associated with thesubset of prioritized users is increased relative to the remainder ofusers from the plurality of users.
 8. The method of claim 1, wherein theat least one criterion includes the historical participation level, themethod further comprising causing display, to at least one prioritizeduser from the subset of prioritized users and via the associated atleast one smart mirror, of a message including an indication that theworkout video is a preferred workout video of the at least oneprioritized user from the subset of prioritized users.
 9. The method ofclaim 1, wherein the at least one criterion includes the historicalparticipation level and the display of the workout video is performedduring a time period, the method further comprising causing display, toat least one prioritized user from the subset of prioritized users andvia the associated at least one smart mirror, of a message including anindication that the time period is a preferred time period of the atleast one prioritized user from the subset of prioritized users.
 10. Themethod of claim 1, wherein the at least one criterion includes themilestone, and the milestone includes one of a birthday, an anniversary,a new membership, or an updated member status.
 11. The method of claim1, wherein the at least one criterion further includes a social mediarelated statistic.
 12. An apparatus, comprising: a processor; and amemory storing instructions that, when executed by the processor, causethe processor to: identify, based on at least one criterion, a subset ofprioritized users from a plurality of users, the at least one criterionincluding at least one of: a milestone, an achievement, or a historicalparticipation level, each user from the plurality of users associatedwith a smart mirror from a plurality of smart mirrors forming a smartmirror network; and cause display of a video of the subset ofprioritized users during display of a workout video on at least a subsetof smart mirrors from the plurality of smart mirrors, each smart mirrorfrom the plurality of smart mirrors configured such that both theworkout video and a reflected image of a user associated with that smartmirror are viewable via that smart mirror by the user associated withthat smart mirror when that user associated with that smart mirror ispositioned in front of the smart mirror during display of the workoutvideo.
 13. The apparatus of claim 12, wherein the video of the subset ofprioritized users includes at least one of: live video imagery of eachuser from the subset of prioritized users, or pre-recorded video imageryof each user from the subset of prioritized users.
 14. The apparatus ofclaim 12, wherein the subset of prioritized users is a first subset ofprioritized users and the at least a subset of smart mirrors is a firstsubset of smart mirrors, the memory further storing instructions that,when executed by the processor, cause the processor to: identify asecond subset of prioritized users from the plurality of users; andcause display of a video of the second subset of prioritized usersduring display of a workout video on a second subset of smart mirrorsfrom the plurality of smart mirrors, the second subset of smart mirrorsbeing different from the first subset of smart mirrors.
 15. Theapparatus of claim 12, wherein the at least a subset of smart mirrorsfrom the plurality of smart mirrors includes a first sub-community ofsmart mirrors and a second sub-community of smart mirrors different fromthe first sub-community of smart mirrors, the instructions to cause theprocessor to cause display of the video of the subset of prioritizedusers including instructions to: identify a first prioritized user fromthe subset of prioritized users as being associated with the firstsub-community of smart mirrors; cause display of the video of the firstprioritized user to smart mirrors of the first sub-community of smartmirrors and not to smart mirrors of the second sub-community of smartmirrors, in response to identifying the first prioritized user as beingassociated with the first sub-community of smart mirrors; identify asecond prioritized user from the subset of prioritized users as beingassociated with the second sub-community of smart mirrors; and causedisplay of the video of the second prioritized user to smart mirrors ofthe second sub-community of smart mirrors and not to smart mirrors ofthe first sub-community of smart mirrors, in response to identifying thesecond prioritized user as being associated with the secondsub-community of smart mirrors.
 16. The apparatus of claim 15, whereinthe instructions to cause the processor to identify the firstprioritized user from the subset of prioritized users as beingassociated with the first sub-community of smart mirrors includeinstructions to determine that the first prioritized user is at leastone of: connected via a social media platform with at least one userassociated with the first sub-community of smart mirrors, located withina predefined geographic region associated with the first sub-communityof smart mirrors, associated with a predefined range of performancemetrics associated with the first sub-community of smart mirrors, orassociated with a milestone associated with the first sub-community ofsmart mirrors.
 17. A non-transitory, processor-readable medium storinginstructions that, when executed by the processor, cause the processorto: identify, based on at least one criterion, a subset of prioritizedusers from a plurality of users, the at least one criterion including atleast one of: a milestone, an achievement, or a historical participationlevel, each user from the plurality of users associated with a smartmirror from a plurality of smart mirrors forming a smart mirror network;and cause display of a video of the subset of prioritized users duringdisplay of a workout video on at least a subset of smart mirrors fromthe plurality of smart mirrors, each smart mirror from the plurality ofsmart mirrors configured such that both the workout video and areflected image of a user associated with that smart mirror are viewablevia that smart mirror by the user associated with that smart mirror whenthat user associated with that smart mirror is positioned in front ofthe smart mirror during display of the workout video.
 18. Thenon-transitory, processor-readable medium of claim 17, wherein eachsmart mirror from the at least a subset of smart mirrors is associatedwith a community user from a plurality of community users, the communityusers from the plurality of community users having in common with oneanother at least one of: a social network, a geographic region, aperformance metric range, or a milestone type.
 19. The non-transitory,processor-readable medium of claim 17, wherein the video of the subsetof prioritized users includes at least one of: live video imagery ofeach user from the subset of prioritized users, or pre-recorded videoimagery of each user from the subset of prioritized users.
 20. Thenon-transitory, processor-readable medium of claim 17, wherein the videoof the subset of prioritized users includes at least one of a haloeffect, an illumination overlay, or a strobe effect.